PHP-Дайджест № 188 (7 – 21 сентября 2020)

0-ykzcjy5-ahoqpvdgjwpnwue-4.jpeg

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, полезные инструменты, видео, подкасты, статьи.

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


f574e9991c42407b8fa789a66b854f8d.png Новости и релизы


  • 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.


c9ee7880391644e4aef6cc28ca681ab0.png 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.


cf862d9072784d04b621238ec137f2ca.png Инструменты


  • 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 в константах.


96b65e92179a40f2bd1884549973ddd5.png Symfony


314bd0f0dfc54e3fa7f0c0daef1a2d25.png Laravel


569de4298b764a33894aa517e74324f9.png Yii


732rpqll-yvu0hrtaw6yeism-de.png Async PHP


phpstorm PhpStorm


329bec7c1e914963a1c5d2f2bfe99995.png Материалы для обучения


8dcc236774104f8286a40ceaea553820.png Аудио/Видео


cc24d9c95c9841988f8299a8b285e6f6.png Занимательное


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

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

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

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

© Habrahabr.ru