PHP-Дайджест № 168 (5 – 25 ноября 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4 RC6, Symfony 5.0 и 4.4, WordPress 5.3 и другие релизы, об обновлении PSR-стандартов, RFC предложения из PHP Internals, порция полезных инструментов, митапы, видеозаписи, подкасты и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.4.0 RC6 — Последний релиз-кандидат. Финальный релиз запланирован на 28 ноября, a пока можно посмотреть что нового в PHP 7.4, прочитать про Стрелочные функции в 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 ноября, Уфа: Встреча PHP-разработчиков Уфы
• 30 ноября, Иваново: PHP: Неправильный путь
• 7 декабря, Йошкар-Ола: PHP Meetup December
• 10 декабря, Одесса: PHP OpenSource world. Stable multi-threaded application.
• 14 декабря, Казань: Большая встреча PHP-разработчиков
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|...
можно будет использовать везде, где типы можно указывать сейчас. - PHP Internals News podcast #36 — О тех RFC, которые не прошли в PHP 7.4.
Инструменты
- 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 — Badoo Jira API Client: магия в Jira на PHP.
Symfony
Laravel
Yii
Async PHP
Материалы для обучения
Аудио/Видео
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 167