Подборка свежих новостей, инструментов, видео и материалов из мира PHP.
Приятного чтения!
Вышли первые две альфа-версии, дающие начало выпуска PHP 8.4. Обновления будут выходить каждые две недели по определённому графику, а финальный выпуск ожидается 21 ноября.
Заморозка функций ожидается 13 августа, а это значит, что некоторые изменения еще могут попасть в выпуск. На данный момент наиболее заметными являются следующие изменения:
new без скобокarray_find(), array_find_key(),
array_any()
и array_all().Напоминаю, что, с этого года сократился предрелизный цикл, вместо 6 релиз-кандидат версий, теперь будет 4, а каждая версия теперь поддерживается на год дольше.
Поздравляю Кельвина, Саки и Эрика!
Выпуски с исправлениями ошибок вышли по расписанию.
Tobias Petry запустил ежегодный опрос о состоянии сообщества Laravel. На сайте также доступны прошлогодние результаты опроса.
Arnaud Le Blanc, Derick Rethans и Larry Garfield рассказали о текущем состоянии дженериков в PHP. Вы можете принять участие в обсуждении в списке рассылок и на Reddit.
В этой версии вас ждет поддержка лог-файлов, редактирование из плавающей панели инструментов, автодополнение в новом терминале, улучшенное автодополнение строки целиком и многое другое.
С полным списком изменений можно ознакомиться на сайте JetBrains.
Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся:
RFC не набрал необходимый процент голосов и был отклонён.
В PHP 8.4 появятся ленивые объекты. Эти объекты будут инициализироваться и потреблять ресурсы только при чтении или изменении свойства.
Хотя ленивые объекты не будут использоваться непосредственно большинством пользователей, они предназначены в первую очередь для авторов библиотек и фреймворков, позволяя им удалить большое количество шаблонного кода.
PHP поддерживает доступ к элементам контейнера смещением с помощью скобок [] со следующей нотацией
$container[$offset].
Однако поведение таких обращений зависит не только от типа контейнера и смещения, но и от операции, которая выполняется
при обращении к смещению. Существующее поведение крайне непоследовательно и трудно предсказуемо.
Gina Peter Banyard предлагает улучшить согласованность языка для смещений и контейнеров.
В настоящее время в PHP есть функция bcdiv() для деления чисел произвольной точности и функция bcmod() для получения
остатка после деления.
В PHP 8.4 появится новая функция bcdivmod(), которая позволит получить частное и остаток за одну операцию в виде
массива.
После внедрения хуков свойств, Ilija Tovilo и Larry Garfield нашли способ реорганизовать логику, чтобы увеличить производительность.
RFC прошел стадию голосования и мы получим улучшения хуков уже в PHP 8.4.
Со второй попытки RFC был принят. Синтаксис, подобный Swift, позволяющий свойствам иметь отдельную («асимметричную») видимость для операций чтения и записи появится в PHP 8.4.
Используя автозагрузчики (например, composer), пользователи уже могут быстро освоиться с классами, но в настоящее
время в языке нет возможности сделать то же самое с функциями.
Robert Landers предложил добавить возможность автозагрузки функций.
При вызове функций из глобального пространства имен парсер PHP создает опкоды, которые используют эти функции напрямую. Парсер может использовать специальные опкоды, оптимизированные для вызова определенных встроенных функций.
Nick Lockheart призывает обсудить вопрос о том, должна ли в PHP быть директива, которая заставляет парсер рассматривать все вызовы функций из пространства имен как глобальные.
Единственный способ передать значение по умолчанию параметру функции или метода – не передавать ничего. Paul Morris
предлагает ввести выражение default в контекстах передачи аргументов, чтобы использовать значение по умолчанию функции
или метода.
1function greetingEveryone($greeting = 'Hello', $subject = 'World') {2 return sprintf('%s, %s!', $greeting, $subject);3}4 5var_dump(greetingEveryone(default, 'Earth')); // Hello, Earth!
arokettu/composer-license-manager – Плагин для Composer, позволяющий задавать лицензионную политику, например, список разрешённых лицензий для проекта и избегать проприетарных пакетов, пакетов с недопустимыми лицензиями или вообще без лицензии.
composer/pcre – Библиотека-обертка PCRE, предлагающая безопасные для типов замены
preg_*.
Sammyjo20/ssh-php – До смешного простая отправная точка для создания приложений PHP SSH.
ServBay – Локальная среда разработки, альтернатива Laravel Herd.
HiEventsDev/Hi.Events – Платформа для управления мероприятиями и продажи билетов с открытым исходным кодом.
freescout-help-desk/freescout – Бесплатная служба поддержки на собственном хостинге и общий почтовый ящик ( альтернатива Zendesk / Help Scout).
savinmikhail/Comments-Density – Анализ плотности и качества комментариев в PHP-файлах для поддержания и улучшения качества документации по коду.
prasathmani/tinyfilemanager – Однофайловый файловый менеджер PHP, браузер и управление файлами.
TicketSwap/phpstan-error-formatter – Минималистичный форматер ошибок для PHPStan.
Нажимая «Подписаться» я даю согласие на обработку персональных данных.
Мы заботимся о ваших данных и не будем злоупотреблять доверием.