PHP-Дайджест № 153 (25 марта – 8 апреля 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.3.4
- PHP 7.2.17
- PHP 7.1.28
- Packagist.org переезжает на AWS
- PhpStorm 2019.1 — Отладка шаблонов Twig и Blade, поиск мертвого кода, улучшенное автодополнение и многое другое.
- Принят PSR-14 Event Dispatcher — Новый стандарт регламентирует работу с событиями в приложении. Документ определяет три интерфейса:
EventDispatcherInterface
,StoppableEventInterface
иListenerProviderInterface
, а также описывает характеристики, которым должны соответствовать все элементы и рекомендации по реализации. Подробнее можно прочитать в серии постов от одного из участников рабочей группы стандарта Ларри Гарфильда.
Примечательно, что новый диспатчер в Symfony 4.3, по сути, совместим со стандартом, но как минимум из-за использования тайпхинтаobject
, который доступен только в PHP 7.2+, использовать стандарт непосредственно в Symfony пока нельзя.
Другой пример реализации стандарта yiisoft/event-dispatcher, вероятно, будет использоваться в Yii 3.
PHP Internals
- [RFC] JIT — Предложение принято для PHP 8.0, а вот идея включить возможность в экспериментальном режиме в PHP 7.4 не нашла поддержки.
В тему отличная статья Joe Watkins о том, что такое JIT вообще и что даст его реализация для PHP. - [RFC] Change the precedence of the concatenation operator — На данный момент операторы конкатенации
.
и математические+
,-
имеют одинаковый приоритет и выполняются слева направо. Предлагается понизить приоритет конкатенации:Скрытый текстecho "sum: " . $a + $b; // текущее поведение echo ("sum: " . $a) + $b; // предлагаемое поведение echo "sum :" . ($a + $b);
- [RFC] Nullable Casting — При кастинге в примитивный тип предлагается сделать возможность кастить в null, то есть возможность использовать
(?int)$x
помимо(int)$x
. - [RFC] Spread Operator in Array Expression — Снова предлагается добавить оператор
...
для массивов. В обновленном предложении убрана поддержка массивов с нечисловыми ключами.Скрытый текст$parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
- Подкаст PHP Internals News #4: Short Arrow Functions with Nikita Popov, #3: Abolish Narrow Margins and Weak References with Joe Watkins
Инструменты
- ivanakimov/hashids.php — Удобная библиотека для обфускации целочисленных идентификаторов.
- smalot/pdfparser — Библиотека для парсинга PDF-файлов и извлечения информации.
- YOURLS/YOURLS — Сервис сокращения ссылок.
- cyrus-and/fracker — Инструмент позволяет в удобном виде отслеживать вызовы функций в PHP и будет полезен для исследователей безопасности.
- wasmerio/php-ext-wasm — Экспериментальное расширение, которое позволяет запускать бинарники WebAssembly прямо из PHP, подгружая их динамически. В последней версии автор увеличил производительность в 29 раз и теперь модули выполняются уже быстрее, чем аналогичные реализованные на PHP.
Symfony
Laravel
Yii
- Preparing Yii for the long run — Теперь фреймворк можно официально поддержать материально. Особенно актуально для тех, у кого мало времени, но поддержать хочется.
- Yii development notes #27
Async PHP
Материалы для обучения
Занимательное
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 152