Вышла новая версия PHP 8.1
Вышла очередная минорная версия PHP 8.1.
Как и все минорные обновления PHP поддерживает обратную совместимость.
А это означает, что вы сможете легко обновиться, ничего не меняя в своем коде.
Полный список изменения можно посмотреть тут.
Версия содержит множество новых возможностей, включая перечисления, readonly-свойства, пересечение типов, улучшения производительности и многое другое.
Перечисления
Перечисления или "Enums" позволяют разработчику определять настраиваемый тип, который ограничен одним из дискретного числа возможных значений. Это может быть особенно полезно при определении модели предметной области.
Пример:
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
Readonly-свойства
Readonly-свойства крайне полезны при реализации объектов типа VO и DTO.
Пример:
class BlogData
{
public readonly Status $status;
public function __construct(Status $status)
{
$this->status = $status;
}
}
Расширенная инициализация объектов
Объекты теперь можно использовать в качестве значений параметров по умолчанию, статических переменных и глобальных констант, а также в аргументах атрибутов.
Пример:
class Service
{
private Logger $logger;
public function __construct(
Logger $logger = new NullLogger(),
) {
$this->logger = $logger;
}
}
Тип возвращаемого значения never
never - тип возвращаемого значения, указывающий, что функция ничего не возвращает.
Пример:
function redirect(string $uri): never
{
header('Location: ' . $uri);
exit();
}
Производительность
Кроме множества изменений, так же улучшена производительность исполняемого кода примерно на 20%.
Ссылка на источник: https://www.php.net/releases/8.1/en.php