...

понедельник, 21 сентября 2020 г.

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<T> {
    
        public function add(T $item) { ... }
    
    }
    $c = new Collection<Product>().
    

    Статические анализаторы и 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 PhpStorm


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


Аудио/Видео


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



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

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

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

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

Let's block ads! (Why?)

Комментариев нет:

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