PHP 8.4.1 Released!

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

Ядро PHP

Изменения Readonly

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

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

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

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

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

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

The final modifier with a method from a trait

Модификатор 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

Теперь можно проверять несколько файлов (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. Значение 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