PHP-Дайджест № 152 (11 – 25 марта 2019)

Свежая подборка со ссылками на новости и материалы. В выпуске: свежие RFC предложения и другие новости из PHP Internals, порция полезных инструментов, и много других материалов и новостей!

Приятного чтения!


Новости и релизы

  • PHP Russia 2019 – Москва, 17 мая — Прием заявок на доклады подходит к концу и уже есть несколько подтвержденных докладчиков! Прежде всего это топ контрибьюторы PHP-ядра Никита Попов и Дмитрий Стогов, также автор spiral/roadrunner Антон Титов, автор библиотеки PHP-ML для машинного обучения на PHP Arkadiusz Kondas и другие.
  • PHP fwdays’19 – Киев, 1 июня — На конференции в Киеве также намечается интересная программа и уже заявлен создатель Symfony Fabien Potencier.
    Для читателей PHP-Дайджеста скидка 15% по промокоду: PHP-digest-fwdays.
  • Enrico Zimuel присоединился к команде Elastic — После 11 лет работы в Zend, Enrico переходит в Elastic, где будет ответственным за библиотеки PHP для Elasticsearch. Прислал @dmitrybalabka. Интересна дальнейшая судьба других участников команды Zend, которые заявили об уходе из Rogue Wave еще в октябре.

PHP Internals

  • [RFC] New custom object serialization mechanism — Предложение принято. В PHP 7.4 реализован новый механизм сериализации объектов и добавлено два магических метода: Скрытый текст// Returns array containing all the necessary state of the object.
    public function __serialize(): array;

    // Restores the object state from the given data array.
    public function __unserialize(array $data): void;

  • [RFC] JIT — В JIT для PHP реализована поддержка Windows и ZTS. Последнее значит, что можно использовать в многопоточных приложениях. По предложению уже стартовало голосование, судя по ходу которого, вероятно, оно будет принято для PHP 8.0, но идея включить в PHP 7.4 не получит достаточной поддержки.
    В тему также пост с бенчмарками Redis-сервера на PHP clue/php-redis-server, где автор получил прирост ~4-23% на версии с JIT.
  • [RFC] Arrow Functions 2.0 — Третья попытка реализовать короткие лямбды в PHP. На этот раз предлагается синтаксис $y = 1;
    $fn1 = fn($x) => $x + $y;

    При этом переменные из внешнего скоупа биндятся по значению автоматически и не надо использовать use().
    В Internals также обсуждаются альтернативные варианты синтаксиса: ($x) ==> $x + $y;

    ($x) => $x + $y;
  • [RFC] Generator comprehensionsКонцепт оформлен в полноценное предложение о реализации спискового включения (list comprehension). По сравнению с концептом, как и в коротких лямбдах, нет необходимости использовать use(): Скрытый текст$y = 3;
    $gen = [for $list as $x if $x % 2 yield $x * $y];
  • [RFC] Deprecate curly braces array access — На данный момент для доступа к элементам массивов и строк можно использовать как квадратные, так и фигурные скобки. И хотя они эквивалентны, фигурные скобки все-таки не работают, например, для добавления элемента в массив “$arr{} = 1;” или объявления массива “$a={1,2};” . Предлагается задепрекейтить фигурные скобки в данном контексте и оставить только квадратные. А вы используете фигурные скобки?
  • Подкаст PHP Internals News Episode 2: PHP Compiler and FFI — Anthony Ferrara в гостях у Derick Rethans.
  • Объявлены релиз-менеджеры PHP 7.4 — Ими стали Peter Kokot and Derick Rethans.

Инструменты

  • API Platform 2.4 — Под капотом MongoDB, Elasticsearch, Mercure, OpenAPI v3, CQRS, HTTP/2 Push.
  • Roave/no-leaks — Плагин для PHPUnit, который поможет обнаружить утечки памяти в приложении и тестах.
  • Roave/Dont — Трейты, которые блокируют использование некоторых магических методов.
  • bobthecow/psysh — Отличная реализация интерактивного режима для PHP. В поддержку свежий пост о том, что такое REPL и Exploratory development.
  • spatie/async — Обертка над PCNTL для простого выполнения параллельных задач. В качестве альтернативы есть еще ackintosh/snidel.
  • King2500/doctrine-phpstorm-meta — Пакет улучшает автодополнение для Doctrine в PhpStorm 2019.1 благодаря .phpstorm.meta.php.
  • biganfa/php2curl — Библиотека позволяет быстро трансформировать текущий контекст ($_REQUEST, $_SERVER, и т.д.) в строку запроса cURL. Прислал catanfa.

Symfony

Laravel

Yii

Безопасность

Async PHP

CMS

Материалы для обучения

Занимательное

  • ircmaxell/php-compiler — Давно заброшенная идея компилятора для PHP от Anthony Ferrara получила реинкарнацию благодаря FFI в PHP 7.4. Теоретически, компилятор способен генерировать нативный машинный код и выдавать бинарник исполняемый без виртуальной машины PHP. На практике, это пока только концепт, который поддерживает всего ничего, но идея интересная.

Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Больше новостей и комментариев в Telegram-канале PHP Digest.

Прислать ссылку
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест № 151

Оставить комментарий