PHP-Дайджест № 188 (7 – 21 сентября 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, полезные инструменты, видео, подкасты, статьи.
Приятного чтения!
Новости и релизы
- PHP 8.0.0 Beta 4 — Дополнительный незапланированный выпуск беты. Добавлен для стабилизации JIT и именованных аргументов в ядре, а также переделывания ворнингов и нотисов.
Переносить дату финального релиза (26 ноября) пока не планируется. Следующий релиз-кандидат ожидается 1 октября. - PHP: Community Synergy Initiative — С проектом PHP есть ряд проблем. Несколько заметных примеров: непонятная и устаревшая секция комментариев в документации на php.net, отсутствие синергии между сообществом и мейнтейнерами языка, недостаточно прозрачности в том, что происходит в проекте кроме новых фич через RFC и нехватка новых людей в проекте.
Paul Dragoonis и Christoph Rumpel хотят сдвинуть дело с мертвой точки и для начала создали анонимный опрос The PHP Community Survey 2020.
- Концепт реализации PHP для GraalVM — В рамках проекта GraalVM развивается альтернативная виртуальная машина для Java с поддержкой других языков. В экспериментальной реализации PHP пока сделано лишь небольшое подмножество возможностей PHP.
На синтетическом бенчмарке Computer Language Benchmarks Game показывает более чем 80-кратное увеличение производительности по сравнению с PHP 7.4.
- Поддержка MySQL 5.6 заканчивается в феврале 2021 — Если вы думали, что с обновлением PHP плохо обстоят дела, то вот статистика использования MySQL в WordPress: 65% установок используют MySQL ≤5.6.
PHP Internals
- Удаляемые дженерики (eliding generics) — Brent Roose, известный своими постами о Laravel и PHP, выдвинул на обсуждение идею добавить в PHP дженерики, но без проверок в рантайме.
Например, возьмем такой код:
class Collection
{ public function add(T $item) { ... } } $c = new Collection ().
Статические анализаторы и IDE смогут его распарсить и провести анализ. В то время как интерпретатор дженерики проигнорирует и будет выполнять код как:class Collection { public function add(mixed $item) { ... } } $c = new Collection().
Идея не новая. Точно так же по умолчанию работают дженерики и в Hack. А в Python, например, почти информация о типах в большинстве случаев удаляется и ни один популярный интерпретатор не валидирует типы аргументов.
- Observer API — В PHP 8 будет добавлен внутренний API для отслеживания входа и выхода из функции. Это полезно для расширений типа Xdebug, профайлеров и APM-решений New Relic, Tideways, и т. п.
Подробнее об API в подкасте PHP Internals News #68 с авторами Levi Morrison и Sammy K Powers.
Инструменты
- phpbench/phpbench 1.0.0-alpha1 — Очень удобный инструмент для бенчмаркания своего кода. В новой версии можно сравнивать результаты с предыдущими запусками и соответственно использовать на CI для контроля производительности. Подробнее в посте.
- seanmorris/php-wasm — Активно развивающийся форк PIB: PHP in Browser — PHP, скомпилированный в WebAssembly с помощью Emscripten. Позволяет запускать PHP в современных браузерах. Демо: Drupal в браузере.
- imliam/php-unique-gmail-address — Пакет для нормализации Gmail адресов (убирает точки, добавления через + и прочее).
- jawira/emoji-catalog — 3k+ смайликов emoji в константах.
Symfony
Laravel
Yii
Async PHP
PhpStorm
Материалы для обучения
Аудио/Видео
Занимательное
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 187