PHP 8.4 - велике оновлення мови

PHP 8.4 - велике оновлення мови

Нова версія містить безліч нових можливостей, таких як хукі властивостей, асиметрична область видимості властивостей, оновлення 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

Додати коментар або відгук