PHP 8.1: enum – крутая новинка, но не панацея

Приветствую, друзья!

Сегодня я хочу познакомить вас с одной из самых крутых новинок PHP 8.1 – enum. Enum, или перечислимый тип, позволяет создавать наборы допустимых значений для переменных.

Зачем это нужно?

Представьте, что вы разрабатываете приложение для интернет-магазина. Вам нужно хранить информацию о статусе заказа: «Новый», «В обработке», «Отправлен», «Доставлен».

Раньше для этого вы могли бы использовать строковые переменные:

PHP

$status = 'Новый';

if ($status !== 'Новый' && $status !== 'В обработке' && $status !== 'Отправлен' && $status !== 'Доставлен') {
  throw new InvalidArgumentException('Неверный статус заказа');
}

Это код довольно громоздкий и не очень удобный.

С помощью enum вы можете сделать то же самое гораздо проще:

PHP

enum OrderStatus: string {
  case New = 'Новый';
  case Processing = 'В обработке';
  case Shipped = 'Отправлен';
  case Delivered = 'Доставлен';
}

$status = OrderStatus::New;

// ...

if (!OrderStatus::tryFrom($status)) {
  throw new InvalidArgumentException('Неверный статус заказа');
}

Преимущества enum:

  • Повышение читабельности кода.
  • Улучшение безопасности.
  • Снижение количества ошибок.

Но помните:

Enum – это мощный инструмент, но, как и любой инструмент, его можно использовать как во благо, так и во зло.

Не злоупотребляйте enum!

Не нужно создавать enum для каждого чиха.

И помните:

Enum – это не замена здравому смыслу.

Используйте enum с умом!

P.S.

Я уверен, что enum станет одним из самых популярных инструментов в PHP 8.1.

Используйте его с умом, и ваш код станет лучше!

Оцените статью