Команда PHP випустила першу бета-версію нової гілки — PHP 8.0.0. Завантажити її можна тут. Друга бета запланована на 20 серпня, а реліз мають підготувати до 26 листопада. Також опубліковані PHP 7.3.21, PHP 7.2.33, PHP 7.4.9 з виправленнями та оновленнями.
Розробники нагадують, що PHP 8.0.0 — рання і тестова версія, тож не варто її використовувати в продакшені, а про помилки просять повідомляти через систему звіту.
Серед оновлень у цій гілці:
-
Підтримка union-типів — наборів з двох або більше типів, які вказують, що можна використати будь-який з них. Наприклад:
public function foo(Foo|Bar $input): int|float;
. -
Компілятор Just-In-Time (JIT) додали до розширення opcache.
-
Підтримка Attributes, або анотацій, з якими легше додавати метадані до класів, адже не треба використовувати docblocks.
-
Доданий клас ValueError.
-
Підтримка виразів
match
. -
Будь-яку кількість функціональних параметрів тепер можна замінити варіативним аргументом, якщо типи сумісні. Наприклад, можна робити так:
class A {
public function method(int $many, string $parameters, $here) {}
}
class B extends A {
public function method(...$everything) {}
}
. "static" (as in "late static binding") can now be used as a return type:
class Test {
public function create(): static {
return new static();
}
}
-
Можна отримати ім'я класу об'єкта за допомогою
$object :: class
. Результат буде такий самий, як уget_class($object)
. -
Розширення JSON тепер є невіддільним складником PHP і його неможливо вимкнути.
-
Вираз throw для обробки винятків.
-
Лаконічніший синтаксис — можна водночас оголошувати властивості та вказувати конструктор, наприклад:
class Point {
public function __construct(
public float $x = 0.0,
public float $y = 0.0,
public float $z = 0.0,
) {}
}
- Новий інтерфейс Stringable, призначений для розпізнавання рядкових типів або даних, які можна перетворити на рядок. Щоразу, коли клас виконує
__toString ()
, він автоматично реалізує інтерфейс за кулісами, тож вручну це робити не потрібно.
Це велике оновлення, тож критичних змін у цьому випуску чимало. З усім списком можна ознайомитись на сторінках UPGRADING і NEWS.
Ще немає коментарів