PHP-Дайджест № 150
(11 – 25 февраля 2019)
Изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на доклады для PHP Russia 2019, новое расширение для реализации параллельного исполнения кода, свежие материалы для обучения, видео, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/441584/
(11 – 25 февраля 2019)
Изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на доклады для PHP Russia 2019, новое расширение для реализации параллельного исполнения кода, свежие материалы для обучения, видео, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/441584/
Читать разборы ошибок безопасности всегда очень интересно, потому что выглядят они как настоящий детектив! Вот один из таких разборов, где в конечном счете все свелось к досадной опечатке.
Это еще раз показывает насколько важны тайп хинты, статический анализ, и нормальный редактор ;-)
https://medium.com/@DanielC7/remote-code-execution-gaining-domain-admin-privileges-due-to-a-typo-dbf8773df767
Это еще раз показывает насколько важны тайп хинты, статический анализ, и нормальный редактор ;-)
https://medium.com/@DanielC7/remote-code-execution-gaining-domain-admin-privileges-due-to-a-typo-dbf8773df767
Medium
Remote Code Execution — Gaining Domain Admin due to a typo
CVE-2018–9022
PHP-Дайджест № 151
(25 февраля – 11 марта 2019)
Обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/443220/
(25 февраля – 11 марта 2019)
Обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/443220/
Короткие лямбды 2.0
https://wiki.php.net/rfc/arrow_functions_v2
Никита Попов продолжает бить по проблемным местам PHP! В своем свежем RFC он замахнулся на стрелочные функции, они же короткие лямбды. У этой идеи в PHP сложная история, было как минимум две попытки (1, 2) их реализовать и обе провалились. В основном упираясь в синтаксис.
Уже рассматривались варианты:
Предложен следующий вариант:
А если надо по ссылке, то придется либо явно перечислять переменные по ссылке, либо использовать переключатель:
https://wiki.php.net/rfc/arrow_functions_v2
Никита Попов продолжает бить по проблемным местам PHP! В своем свежем RFC он замахнулся на стрелочные функции, они же короткие лямбды. У этой идеи в PHP сложная история, было как минимум две попытки (1, 2) их реализовать и обе провалились. В основном упираясь в синтаксис.
Уже рассматривались варианты:
$x ~> $x * 2Собственно половина документа, который опубликовал Никита, посвящена выбору синтаксиса.
function($x) => $x + $y
^($x) => $x + $y
Предложен следующий вариант:
fn($x, $y) => $x * $yПри этом переменные из внешнего скоупа биндятся по значению автоматически и не надо использовать use(), то есть можно вот так:
$y = 1;
$fn1 = fn($x) => $x + $y;
А если надо по ссылке, то придется либо явно перечислять переменные по ссылке, либо использовать переключатель:
$fn = fn() use(&) {Также можно будет объявлять и методы в виде короткого синтаксиса:
// ...
}
class Test {Надеюсь, на этот раз предложение преодолеет порог голосования и будет принято.
private $foo;
fn getFoo() => $this->foo;
}
PHP-Дайджест № 152
(11 – 25 марта 2019)
Свежие RFC предложения и другие новости из PHP Internals, порция полезных инструментов, и много других материалов и новостей!
https://habr.com/ru/post/445140/
(11 – 25 марта 2019)
Свежие RFC предложения и другие новости из PHP Internals, порция полезных инструментов, и много других материалов и новостей!
https://habr.com/ru/post/445140/
Принят PSR-14 Event Dispatcher
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-14-event-dispatcher.md
Новый стандарт регламентирует работу с событиями в приложении. И это тот самый стандарт, из-за которого разгорелись споры и Fabien Potencier покинул PHP-FIG. Правда, после этого стандарт был заметно доработан.
В итоге получился довольно простой, понятный, и не очень строгий стандарт. Он определяет всего 3 интерфейса:
Также стандарт перечисляет характеристики, которым должны соответствовать все элементы и рекомендации по реализации.
Уже есть пара реализаций:
https://github.com/crell/tukio
https://github.com/phly/phly-event-dispatcher
И интересная идея плагина для Composer:
https://github.com/bmack/kart-composer-plugin
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-14-event-dispatcher.md
Новый стандарт регламентирует работу с событиями в приложении. И это тот самый стандарт, из-за которого разгорелись споры и Fabien Potencier покинул PHP-FIG. Правда, после этого стандарт был заметно доработан.
В итоге получился довольно простой, понятный, и не очень строгий стандарт. Он определяет всего 3 интерфейса:
EventDispatcherInterface
с единственным методом dispatch(object $event)
, при этом событие – любой объект, разве что если вы хотите, чтоб событие останавливало обработку других событий, тогда оно должно реализовать StoppableEventInterface
; ну и третий интерфейс – это ListenerProviderInterface
реализация которого должна уметь предоставлять список обработчиков для конкретного события через метод getListenersForEvent(object $event) : iterable
. Ну а обработчиком может быть совершенно любой Сallable
.Также стандарт перечисляет характеристики, которым должны соответствовать все элементы и рекомендации по реализации.
Уже есть пара реализаций:
https://github.com/crell/tukio
https://github.com/phly/phly-event-dispatcher
И интересная идея плагина для Composer:
https://github.com/bmack/kart-composer-plugin
GitHub
fig-standards/PSR-14-event-dispatcher.md at master · php-fig/fig-standards
Standards either proposed or approved by the Framework Interop Group - fig-standards/PSR-14-event-dispatcher.md at master · php-fig/fig-standards
Деструктурирующее присваивание с нечисловыми ключами
Эта возможность доступна с PHP 7.1 и очень удобна, когда надо выбрать только некоторые элементы из массива.
https://twitter.com/brendt_gd/status/1111243431781822464
Эта возможность доступна с PHP 7.1 и очень удобна, когда надо выбрать только некоторые элементы из массива.
https://twitter.com/brendt_gd/status/1111243431781822464
Fizz-Buzz в 52 символа?
https://code-golf.io/
На этом сайте можно посоревноваться в реализации самого короткого по числу символов решения простых задач. Например, попробуйте написать простейшую Fizz-Buzz задачку на PHP https://code-golf.io/fizz-buzz#php в 52 символа! А именно это и есть текущий рекорд.
https://code-golf.io/
На этом сайте можно посоревноваться в реализации самого короткого по числу символов решения простых задач. Например, попробуйте написать простейшую Fizz-Buzz задачку на PHP https://code-golf.io/fizz-buzz#php в 52 символа! А именно это и есть текущий рекорд.
PHP-Дайджест № 153
(25 марта – 8 апреля 2019)
https://habr.com/p/447130/
Принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое!
(25 марта – 8 апреля 2019)
https://habr.com/p/447130/
Принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое!
ORM для долгоживущих приложений
github.com/cycle/orm
Новая библиотека от автора RoadRunner Антона Титова. Аналог Doctrine для использования в демонизированных приложениях на PHP. Без утечек памяти и со сбрасываемым стейтом.
– Поддерживаются MySQL, MariaDB, PostgresSQL, SQLServer, SQLite;
– Совместима с Doctrine Collections и Zend Hydrator;
– Можно использовать в стиле ActiveRecord.
Сильная вещь, ждем документацию!
github.com/cycle/orm
Новая библиотека от автора RoadRunner Антона Титова. Аналог Doctrine для использования в демонизированных приложениях на PHP. Без утечек памяти и со сбрасываемым стейтом.
– Поддерживаются MySQL, MariaDB, PostgresSQL, SQLServer, SQLite;
– Совместима с Doctrine Collections и Zend Hydrator;
– Можно использовать в стиле ActiveRecord.
Сильная вещь, ждем документацию!
GitHub
GitHub - cycle/orm: PHP DataMapper, ORM
PHP DataMapper, ORM. Contribute to cycle/orm development by creating an account on GitHub.
Конец Zend Framework, начало Laminas project
https://getlaminas.org/
После длительного молчания наконец-то пролился свет на судьбу фреймворка.
Zend Framework переходит под крыло Linux Foundation https://www.linuxfoundation.org/blog/2019/04/lf-forms-laminas-project/ и меняет своё название на Laminas, чтобы отвязаться от коммерческого бренда Zend.
Фреймворк разрабатывался компанией Zend, затем вместе с самой компанией был поглощён Rogue Wave Software. В октябре прошлого года Зеев Сураски объявил о том, что вся команда Zend покинет RWS https://habr.com/ru/post/426809/. Пока о дальнейших планах рассказал только Enrico Zimuel, который перешёл в Elastic https://www.zimuel.it/blog/a_new_journey_with_PHP_again. Ждём новостей от Zeev Suraski, Adam Culp, Matthew Weier O'Phinney, и, конечно, Дмитрия Стогова.
Очень надеюсь это вдохнёт новую жизнь во фреймворк, и конкуренция с другими инструментами благоприятно воздействует на всю экосистему.
https://getlaminas.org/
После длительного молчания наконец-то пролился свет на судьбу фреймворка.
Zend Framework переходит под крыло Linux Foundation https://www.linuxfoundation.org/blog/2019/04/lf-forms-laminas-project/ и меняет своё название на Laminas, чтобы отвязаться от коммерческого бренда Zend.
Фреймворк разрабатывался компанией Zend, затем вместе с самой компанией был поглощён Rogue Wave Software. В октябре прошлого года Зеев Сураски объявил о том, что вся команда Zend покинет RWS https://habr.com/ru/post/426809/. Пока о дальнейших планах рассказал только Enrico Zimuel, который перешёл в Elastic https://www.zimuel.it/blog/a_new_journey_with_PHP_again. Ждём новостей от Zeev Suraski, Adam Culp, Matthew Weier O'Phinney, и, конечно, Дмитрия Стогова.
Очень надеюсь это вдохнёт новую жизнь во фреймворк, и конкуренция с другими инструментами благоприятно воздействует на всю экосистему.
Linux Foundation
Zend Framework transitions to Linux Foundation as new Laminas project
The Zend Framework is transitioning to the Linux Foundation and will launch later this year as a new project called Laminas.
Интервью с Никитой Поповым в подкасте SDCast
https://sdcast.ksdaemon.ru/2019/04/sdcast-103/
Всем известный Никита Попов, автор многочисленных улучшений для PHP, совсем не публичная фигура. Информации о нем мало, и даже выступления на конференциях можно пересчитать по пальцам.
И вот Константин Буркалев записал интереснейшее интервью, в котором Никита рассказывает о том, как попал в PHP, как реализует различные RFC и где черпает вдохновение, о трудностях PHP, статической типизации и многом-многом другом.
https://sdcast.ksdaemon.ru/2019/04/sdcast-103/
Всем известный Никита Попов, автор многочисленных улучшений для PHP, совсем не публичная фигура. Информации о нем мало, и даже выступления на конференциях можно пересчитать по пальцам.
И вот Константин Буркалев записал интереснейшее интервью, в котором Никита рассказывает о том, как попал в PHP, как реализует различные RFC и где черпает вдохновение, о трудностях PHP, статической типизации и многом-многом другом.
SDCast
SDCast #103: в гостях Никита Попов
Ходит шутка, что как устроен PHP полностью знают только Никита Попов и Дмитрий Стогов. Так вот Никита в этом выпуске у меня в гостях! Последние несколько лет Никита активно участвует в развитии языка PHP, является автором многих интересных RFC, часть из которых…
Короткие лямбды будут в PHP 7.4
https://wiki.php.net/rfc/arrow_functions_v2#vote
Предложение прошло голосование и принято. Теперь в PHP будут короткие анонимные функции с использованием синтаксиса
Итого в ближайшем обновлении PHP, которые выйдет в конце этого года, мы уже имеем FFI, предзагрузку, короткие лямбды, типизированные свойства, и целую пачку других улучшений https://wiki.php.net/rfc#php_74
https://wiki.php.net/rfc/arrow_functions_v2#vote
Предложение прошло голосование и принято. Теперь в PHP будут короткие анонимные функции с использованием синтаксиса
fn() =>
и автоматическим захватом переменных из внешнего скоупа по значению:$y = 1;
$fn = fn($x) => $x + $y;
Итого в ближайшем обновлении PHP, которые выйдет в конце этого года, мы уже имеем FFI, предзагрузку, короткие лямбды, типизированные свойства, и целую пачку других улучшений https://wiki.php.net/rfc#php_74
PHP-Дайджест № 155
(22 апреля – 6 мая 2019)
https://habr.com/p/450642/
Обновления PHP, Codeception 3.0 и другие релизы, короткие лямбды в PHP 7.4 и обзор свежих RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое!
(22 апреля – 6 мая 2019)
https://habr.com/p/450642/
Обновления PHP, Codeception 3.0 и другие релизы, короткие лямбды в PHP 7.4 и обзор свежих RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое!
PHP-Дайджест № 156
(6 – 20 мая 2019)
https://habr.com/p/452560/
PHPRussia, PHP fwdays'19, WordPress 5.2, о PHP в 2019, новости из PHP Internals, порция полезных инструментов, и многое другое!
(6 – 20 мая 2019)
https://habr.com/p/452560/
PHPRussia, PHP fwdays'19, WordPress 5.2, о PHP в 2019, новости из PHP Internals, порция полезных инструментов, и многое другое!
PhpStorm 2019.2 EAP
https://blog.jetbrains.com/phpstorm/2019/05/phpstorm-2019-2-early-access-program-is-open/
Запустили программу раннего доступа для второго мажорного релиза PhpStorm в этом году. Свежие билды с новыми фичами и фиксами будут выходить каждую неделю в течение следующих двух месяцев.
Из того, что можно пощупать уже сейчас:
– Автовнедрение регулярок в PHP-коде
– Поддержка типизированных свойств PHP 7.4 (ещё в процессе, но уже есть удобный квик-фикс для миграции)
– Обновлённый тултип для инспекций – можно сразу в нем исправлять
– Поддержка cURL формата в HTTP-клиенте
– EditorConfig работает из коробки
На самом деле, в первом билде даже намного больше всего, но более подробно описывать все обновления буду в последующих постах в блоге PhpStorm.
По традиции EAP версии можно использовать совершенно бесплатно.
https://blog.jetbrains.com/phpstorm/2019/05/phpstorm-2019-2-early-access-program-is-open/
Запустили программу раннего доступа для второго мажорного релиза PhpStorm в этом году. Свежие билды с новыми фичами и фиксами будут выходить каждую неделю в течение следующих двух месяцев.
Из того, что можно пощупать уже сейчас:
– Автовнедрение регулярок в PHP-коде
– Поддержка типизированных свойств PHP 7.4 (ещё в процессе, но уже есть удобный квик-фикс для миграции)
– Обновлённый тултип для инспекций – можно сразу в нем исправлять
– Поддержка cURL формата в HTTP-клиенте
– EditorConfig работает из коробки
На самом деле, в первом билде даже намного больше всего, но более подробно описывать все обновления буду в последующих постах в блоге PhpStorm.
По традиции EAP версии можно использовать совершенно бесплатно.
Розыгрыш билетов на PHP fwdays'19
https://fwdays.com/en/event/php-fwdays-2019
1 июня в Киеве пройдёт всем известная PHP fwdays! Конференция отличная и я сам обязательно на неё поеду.
Как старому другу конференции организаторы предоставили мне два билета. В качестве эксперимента попробуем разыграть их прямо тут на канале. Потому что я себе уже успел купить, как только объявили участие Фабьена из Symfony. ^^
Вероятно, поехать сможет не каждый подписчик канала, так что, если вам действительно нужен билет, подтвердите участие в розыгрыше нажав кнопку ниже. (счетчик обновляется с задержкой)
24 мая ровно в 20:00 бот случайным образом автоматически выберет двух человек из числа кликнувших. Они и получат билеты на PHP fwdays от PHP-Дайджеста.
До встречи на конференции!
*****
Победители: Juli Eliseeva, Konstantin Aleksandrov
https://fwdays.com/en/event/php-fwdays-2019
1 июня в Киеве пройдёт всем известная PHP fwdays! Конференция отличная и я сам обязательно на неё поеду.
Как старому другу конференции организаторы предоставили мне два билета. В качестве эксперимента попробуем разыграть их прямо тут на канале. Потому что я себе уже успел купить, как только объявили участие Фабьена из Symfony. ^^
Вероятно, поехать сможет не каждый подписчик канала, так что, если вам действительно нужен билет, подтвердите участие в розыгрыше нажав кнопку ниже. (счетчик обновляется с задержкой)
24 мая ровно в 20:00 бот случайным образом автоматически выберет двух человек из числа кликнувших. Они и получат билеты на PHP fwdays от PHP-Дайджеста.
До встречи на конференции!
*****
Победители: Juli Eliseeva, Konstantin Aleksandrov
Fwdays
PHP fwdays'19 - The biggest PHP conference in Ukraine
The biggest PHP conference in Ukraine, where you can find up to date and practical talks from ukrainian and foreign experts in PHP.