Новая версия содержит множество новых возможностей, таких как хуки свойств, асимметричная область видимости свойств, обновление DOM API, улучшена производительность, исправлены ошибки и многое другое.
Основные изменения
- Хуки свойств обеспечивают поддержку вычисляемых свойств, которые могут быть понятны IDE и инструментам статического анализа, без необходимости писать DocBlock-комментарии, которые могут не совпадать. Кроме того, они позволяют выполнять надёжную предварительную или последующую обработку значений, без необходимости проверять, существует ли в классе соответствующий геттер или сеттер.
- Асимметричная область видимости записи свойства теперь может контролироваться независимо от области видимости чтения свойства, что уменьшает необходимость использования шаблонных методов-геттеров для раскрытия значения свойства без возможности его изменения извне класса.
- Новый атрибут
#[\Deprecated]расширяет существующий механизм объявления сущности устаревшей для пользовательских функций, методов и констант классов. - Новый DOM API, который поддерживает разбор HTML5-документов в соответствии со стандартами, исправляет несколько давних ошибок в поведении DOM и добавляет несколько функций, делающих работу с документами более удобной. DOM API доступен в пространстве имён Dom. Документы, использующие новый DOM API, могут быть созданы с помощью классов
Dom\HTMLDocumentиDom\XMLDocument. - Новый объект
BcMath\Numberпозволяет использовать объектно-ориентированный стиль и стандартные математические операторы при работе с числами произвольной точности. Эти объекты неизменяемы и реализуют интерфейсStringable, поэтому их можно использовать в строковых контекстах, например,echo $num. - Добавлены функции
array_find(),array_find_key(),array_any()иarray_all(). - Добавлены дочерние классы
Pdo\Dblib,Pdo\Firebird,Pdo\MySql,Pdo\Odbc,Pdo\Pgsql,Pdo\Sqliteдрайверов, наследующие PDO. - К свойствам и методам только что инициализированного объекта теперь можно обращаться, не оборачивая выражение
newв круглые скобки. Пример:new MyClass()->method()без скобок. - Новые классы, интерфейсы и функции и многое другое…
>>> Подробности







