Сентябрь 2023

Сентябрь 2023

Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

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

Новости

Вышли PHP 8.1.24 и PHP 8.2.11

Выпуски с исправлениями ошибок вышли по расписанию.

Вышел третий релиз кандидат PHP 8.3.0

Очередной RC был выпущен в соответствии с расписанием. Следующий релиз – RC4 ожидается 12 октября.

С подробным списком изменений в PHP 8.3, можно ознакомиться на сайтах php.watch или stitcher.io.

PhpStorm Public Roadmap: What’s Coming in 2023.3

Команда PhpStorm в 2023.3 планирует добавить комплексную поддержку PHP 8.3, возможность исключать каталоги и файлы внешних библиотек для ускорения индексации, специальную стилизацию типов в дженериках.

Для Symfony разработчиков будет полезным мастер создания нового проекта, преобразование аннотаций Doctrine в атрибуты, а также поддержка Doctrine Query Language внутри QueryBuilder.

Вышел CakePHP 5

Команда CakePHP выпустила пятую версию фреймворка, которая была в разработке последние два года. Теперь для работы требуется PHP 8.1 и выше, улучшены подсказки по всему фреймворку.

CakePHP теперь использует объединения типов для формализации типов многих параметров во всей платформе, обновлён PHPUnit до 10 версии, новая поддержка сопоставления перечисления типов в ORM, обеспечивающая более выразительные слои модели с улучшенной проверкой типов, добавлена поддержка HTTP-фабрик PSR17 и многое другое.

State of Laravel 2023

Завершилось исследование по Laravel, в котором приняло участие более 4000 разработчиков.

PHP Core

Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся:

📊 RFC: Increasing the default BCrypt cost

Tim Düsterhus предлагает увеличить значение параметра cost в BCrypt по умолчанию, обозначающего алгоритмическую стоимость, которая должна использоваться, с 10 до 11 (двухкратное увеличение времени) или до 12 (четырехкратное увеличение времени).

📣 RFC: DOM HTML5 parsing and serialization

Niels Dossche предлагает добавить в модуле DOM два новых класса: HTMLDocument и XMLDocument.

Класс HTMLDocument добавит поддержку разбора и сериализации HTML5-документов в соответствии со спецификацией. Класс XMLDocument будет служить современной альтернативой классу DOMDocument, который сохраняется для совместимости.

Эти новые классы также обеспечат более устойчивый к злоупотреблениям API для загрузки документов.

Существующие классы DOM в глобальном пространстве имён получат псевдоним в новом пространстве имён DOM, так что новая реализация будет использоваться по умолчанию.

📣 RFC: A new JIT implementation based on IR Framework

Дмитрий Стогов предлагает новую реализацию Just-in-Time компилятора, основанную на собственном фреймворке Дмитрия Intermediate Representation.

Основной плюс нового подхода в том, что исходный код PHP освободится от низкоуровневых деталей JIT-компиляции. Теперь интерпретатор будет формировать так называемое промежуточное представление, которое вышеупомянутый фреймворк превратит в ассемблерный код с учётом процессорной специфики. Также новый JIT позволит в будущем применить дополнительные оптимизации (видимо, уже на стороне фреймворка) для получения более эффективного машинного кода. Минус же состоит в более долгой JIT-компиляции.

Изначально Дмитрий собирался оставлять обе версии JIT, но, судя по обсуждению в PR, многие не против просто поменять старую на новую и не париться с поддержкой двух компиляторов.

RFC: Support optional suffix parameter in tempnam

RFC был отклонён.

Основная проблема – суффикс не будет работать в Windows. Чтобы избежать больших проблем из-за незначительного изменения, многие проголосовали против.

Инструменты

  • emreyarligan/enum-concern – Пакет для удобной работы с перечислениями на основе коллекций Laravel.

  • hyperf/hyperf – Корутинный фреймворк на основе Swoole, ориентированный на скорость и гибкость.

  • loupe-php/loupe – Полнотекстовая поисковая система, основанная только на PHP и SQLite, с токенизацией, стеммингом, допуском опечаток, фильтрами и поддержкой геопозиционирования.

  • TomasVotruba/lines – CLI-инструмент, запускаемый в любом месте, для быстрого измерения размера PHP-проектов.

  • Chemaclass/bashunit – Минималистичная библиотека для тестирования bash-скриптов.

  • laminas/laminas-text – Вы когда-нибудь хотели получить прикольный текстовый баннер в формате ASCII?

  • espocrm/espocrm – Развитая CRM с открытым исходным кодом, построенная на PHP.

  • Can I PHP? — Быстрая проверка того, в какой версии PHP появился тот или иной функционал.

Laravel

Symfony

Статьи

Видео

События

Развлечения

  • phpgl/flappyphpant – Простая игра, похожая на Flappy Bird, написанная на PHP и построенная на основе PHP-GLFW и фреймворка VISU.

Сергей Пантелеев
Релиз-менеджер PHP 8.2
Роман Пронский
Администратор PHP Foundation
Краткий дайджест в нашем Telegram
Ещё больше новостей в блоге компании JetBrains
PHP-дайджест в видео формате на канале CutCode
Рассылка PHP-дайджестов
Подпишитесь на рассылку, чтобы не пропустить новый выпуск

Нажимая «Подписаться» я даю согласие на обработку персональных данных.

Мы заботимся о ваших данных и не будем злоупотреблять доверием.