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

Дата публикации: 2021-11-25
Просмотры: 1197

Вышла очередная минорная версия PHP 8.1.
Как и все минорные обновления PHP поддерживает обратную совместимость.
А это означает, что вы сможете легко обновиться, ничего не меняя в своем коде.

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

Полный список изменения можно посмотреть тут.
Версия содержит множество новых возможностей, включая перечисления, 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

Предыдущая статья:

Вышла новая версия PHPStan 1.0
Поделиться статьей:

Комментарии:

Авторизуйтесь, для того, чтобы оставить комментарий. Войти на сайт
Подписка на новости
Узнавайте о новых статьях первыми.
Профиль