Доброго времени суток! Сегодня поговорим с Вами о новшестве языка PHP - атрибутах .

Атрибуты в PHP 8

Доброго времени суток! Сегодня поговорим с Вами о новшестве языка PHP - атрибутах.

В PHP 8 была добавлена поддержка атрибутов, которые предоставляют возможность добавлять дополнительные метаданные к классам, свойствам, методам и другим элементам кода. Атрибуты предоставляют способ внедрения метаданных прямо в код PHP, что может быть полезно для различных задач, таких как аннотации, конфигурация и другие.

Ранее, аттрибуты в PHP поддерживались через комментарии, однако теперь они есть в самом языке, что открывает еще более широкие возможности их применения.

Примеры использования атрибутов в PHP 8:

  1. #[Attribute]
#[Attribute]
class MyAttribute {
    // Код атрибута
}
  1. #[Deprecated]
#[Deprecated(since: "1.0", alternative: "NewClass::class")]
class OldClass {
    // Код класса
}
  1. #[Route]
#[Attribute]
class Route {
    public function __construct(public string $path) {}
}

#[Route("/home")]
class HomeController {
    // Код контроллера
}
  1. #[Immutable]
#[Immutable]
class ImmutableClass {
    // Код неизменяемого класса
}