PHP 8.4.24 Released!

Новая функциональность

Ядро PHP

Изменения Readonly

Анонимные классы теперь могут быть помечены как доступные только для чтения.

Свойства с доступом только для чтения теперь можно повторно инициализировать при клонировании.

Типизированные константы класса

Классы, интерфейсы, трейты и константы перечислений теперь поддерживают объявления типов.

Замыкания, которые создали в магических методах

Замыкания, которые создали в магических методах, теперь принимают именованные аргументы.

Модификатор final в блоках адаптации трейтов

Блоки адаптации трейтов стали поддерживать конструкцию as final, которая внедряет неокончательный метод трейта как окончательный и запрещает переопределение метода в производных классах.

Атрибут Override

Добавили атрибут #[\Override], который проверяет объявление метода в родительском классе или интерфейсе.

получение констант классов динамическим синтаксисом

Появилась поддержка доступа к константам класса через переменные: C::{$name}.

Инициализация статических переменных

Статические переменные теперь поддерживают инициализацию параметрами, вызовами функций и другими произвольными выражениями.

Синтаксис резервных значений для ini-переменных

Файл php.ini теперь поддерживает синтаксис резервных и установленных по умолчанию значений.

<?php

/*
Путь /path/to/user.ini содержит следующие настройки:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/

$user_ini = parse_ini_file('/path/to/user.ini');
echo $user_ini['listen']; // localhost:9000

Командная строка CLI

В режиме CLI теперь поддерживается множественная проверка синтаксиса файлов: php -l file1.php file2.php.

Модуль DOM

Добавили свойства DOMElement::$className и DOMElement::$id. Пока они не бинарно-безопасные из-за общих ограничений библиотеки libxml2. Это означает, что значения свойств будут обрезаны на NUL-байте.

Добавили свойства DOMNode::$isConnected и DOMNameSpaceNode::$isConnected.

Добавили свойства DOMNode::$parentElement и DOMNameSpaceNode::$parentElement.

Модуль FFI

Модуль теперь поддерживает присваивание объектов FFI\CData другим объектам FFI\CData — структурам и полям.

Модуль Opcache

Элементы opcache_get_status()['scripts'][n]['revalidate'] теперь содержат метку времени Unix, которая генерируется на основе значения INI-директивы opcache.revalidate_freq и указывает время следующей проверки метки времени скриптов.

Модуль POSIX

Функция posix_getrlimit() теперь содержит необязательный параметр $resource, чтобы разрешить получение ограничения отдельного ресурса.

Функция posix_isatty() теперь выдаёт предупреждения о типе целых чисел, следуя обычной семантике ZPP.

Функция posix_ttyname() теперь выдаёт предупреждения о типе целых чисел, следуя обычной семантике класса ZPP, и предупреждения о значениях для недействительных целых чисел дескриптора файла.

Потоки

Потоки теперь выдают уведомление STREAM_NOTIFY_COMPLETED. Раньше это не было реализовано.

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top