PHP-Дайджест № 168 (5 – 25 ноября 2019)

1337cf3b013e7149a340826b385f2a44.jpg

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4 RC6, Symfony 5.0 и 4.4, WordPress 5.3 и другие релизы, об обновлении PSR-стандартов, RFC предложения из PHP Internals, порция полезных инструментов, митапы, видеозаписи, подкасты и многое другое.

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


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


  • PHP 7.4.0 RC6 — Последний релиз-кандидат. Финальный релиз запланирован на 28 ноября, a пока можно посмотреть что нового в PHP 7.4, прочитать про habrСтрелочные функции в PHP 7.4, глянуть Введение в PHP FFI.
  • PHP 7.2.25 — Поддержка ветки заканчивается и релиз 7.2.26, который ожидается 19 декабря, будет последним регулярным выпуском. После этого будут только секьюрити обновления по мере необходимости в течение года.
  • PHP 7.3.12
  • Обновление стандартов PSR — Заканчивается голосование по процедуре обновления интерфейсов в связи с добавлением тайпхинтов. Предлагается двухэтапный план: выпустить версию 1.1 для стандартов, в которой добавят декларации типов для параметров, и затем v2.0 с тайпхинтами возвращаемых значений. Подробнее о причинах и рассмотренных альтернативных подходах.
  • WordPress 5.3 — В обновлении улучшения для блочного редактора Guttenberg (кстати доступен для Laravel в виде пакета VanOns/laraberg), новая тема Twenty Twenty, совместимость с PHP 7.4.
  • skyeng/php-communities — Открытый список PHP-событий, спикеров и организаторов на GitHub. Ближайшие мероприятия:
    • 29 ноября, Уфа: habrВстреча PHP-разработчиков Уфы
    • 30 ноября, Иваново: PHP: Неправильный путь
    • 7 декабря, Йошкар-Ола: PHP Meetup December
    • 10 декабря, Одесса: PHP OpenSource world. Stable multi-threaded application.
    • 14 декабря, Казань: Большая встреча PHP-разработчиков


c9ee7880391644e4aef6cc28ca681ab0.png PHP Internals


  • [RFC] Weak maps — В PHP 7.4 была добавлена поддержка слабых ссылок через специальный класс WeakReference. Но в действительности для приложений нужна коллекция WeakMap, которую нельзя реализовать на основе WeakReference. Собственно, её и предлагается добавить.
    Скрытый текст
    $map = new WeakMap();
    $obj = new stdClass();
    $map[$obj] = 42;
    var_dump($map);
    // object(WeakMap)#1 (1) {
    //   [0]=>
    //     ["key"] => object(stdClass)#2 (0) {}
    //     ["value"] => int(42)
    //   }
    // }
    
    // Объект уничтожается здесь,
    // и ключ автоматически удаляется из WeakMap
    unset($obj);
    var_dump($map);
    // object(WeakMap)#1 (0) {
    // }
    
  • [RFC] Implement new DOM Living Standard APIs in ext/dom — Предложение о реализации поддержки нового стандарта DOM в расширении ядра почти принято единогласно.
  • [RFC] Deprecate Backtick Operator (V2) — Отклонено на голосовании.
  • [RFC] Union Types 2.0 — Предложение принято практически единогласно и в PHP 8.0 нас ждут объединённые типы. Синтаксис T1|T2|... можно будет использовать везде, где типы можно указывать сейчас.
  • audioPHP Internals News podcast #36 — О тех RFC, которые не прошли в PHP 7.4.


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


  • lisachenko/z-engine — Экспериментальная библиотека, которая позволяет используя FFI получить доступ к внутренним структурам самого PHP, таким как zend_class_entry, zval, и подобным, и изменять их в рантайме. Это позволяет делать самые немыслимые манипуляции в рантайме.
  • nette/safe-stream — Библиотека позволяет производить атомарные и безопасные чтение/запись файлов с помощью стандартных функций PHP.
  • krakjoe/ilimit — Расширение позволяет выполнить функцию наложив при этом ограничения на время и память, которые может потребовать вызов.
  • Twig 3.0 — Под капотом много мелких улучшений, повышена производительность, почищен код.
  • fzaninotto/Faker 1.9 — Более сотни улучшений и исправлений в свежем обновлении инструмента для генерации тестовых данных.
  • cekta/di — Годная реализация PSR-11.
  • tarantool-php/client — PHP-клиент для Tarantool. Бенчмарки PHP синхронных коннекторов для Tarantool запущенных в асинхронном/параллельном режиме с помощью расширений Swoole, Async и Parallel (и их комбинаций). Прислал rybakit.
  • badoo/jira-client — habrBadoo Jira API Client: магия в Jira на PHP.


96b65e92179a40f2bd1884549973ddd5.png Symfony


314bd0f0dfc54e3fa7f0c0daef1a2d25.png Laravel


569de4298b764a33894aa517e74324f9.png Yii


Async PHP


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


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

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

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

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

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

© Habrahabr.ru