
Новата версия съдържа много нови възможности, като свойства с хукове, асиметрична видимост на свойствата, обновен DOM API, подобрена производителност, коригирани грешки и още много.
Основни промени
- Хукове на свойствата предоставят поддръжка за изчисляеми свойства, които могат да бъдат разбрани от IDE и инструменти за статичен анализ, без необходимостта от писане на DocBlock коментари, които може да не съвпадат. Освен това те позволяват надежден предварителен или последващ обработка на стойности, без необходимостта да се проверява дали в класа съществува съответният геттер или сеттер.
- Асиметрична видимост свойствата на записа вече могат да бъдат управлявани независимо от видимостта на четене на свойството, което намалява необходимостта от използването на шаблонни методи-гетери за разкриване на стойността на свойството без възможност за промяна отвън на класа.
- Нов атрибут #[Deprecated] разширява съществуващия механизъм за обявяване на структурата за остаряла за потребителски функции, методи и константи на класовете.
- Нов DOM API, който поддържа парсинг на HTML5 документи съобразно стандартите, коригира няколко стари грешки в поведението на DOM и добавя няколко функции, които правят работата с документите по-удобна. DOM API е наличен в пространството от имена Dom. Документите, използващи новия DOM API, могат да бъдат създадени с помощта на класовете DomHTMLDocument и DomXMLDocument.
- Нов обект BcMathNumber позволява използването на обектно-ориентиран стил и стандартни математически оператори при работа с числа с произволна точност. Тези обекти са неизменяеми и реализират интерфейса Stringable, поради което могат да бъдат използвани в стрингови контексти, например, echo $num.
- Добавени са функции array_find(), array_find_key(), array_any() и array_all().
- Добавени са дъщерни класове PdoDblib, PdoFirebird, PdoMySql, PdoOdbc, PdoPgsql, PdoSqlite драйвери, наследяващи PDO.
- Свойствата и методите на току-що инициализирания обект вече могат да се извикват, без да се обгръща изразът new в скоби. Пример: new MyClass()->method() без скоби.
- Нови класове, интерфейси и функции и много други...
Източник: linux.org.ru
