Вышла новая версия PHP 8.1

Вышла очередная минорная версия PHP 8.1. Полный список изменения можно посмотреть тут.
Версия содержит множество новых возможностей, включая перечисления, readonly-свойства, пересечение типов, улучшения производительности и многое другое.

Вышла новая версия PHP 8.1

Перечисления

Перечисления или "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

Дата публикации: 2021-11-25

Просмотры: 45
Подписка на новости
Узнавайте о новых статьях первыми.
Профиль