Глосарій

Атрибути PHP (Attributes)

Атрибути (PHP 8.0) — структурні метадані, що додаються до класів, методів, властивостей і параметрів. Замінили docblock-анотації (@Route, @Inject) нативним синтаксисом, що перевіряється статичним аналізом.

Синтаксис

#[Attribute]
class Route {
  public function __construct(
    public string $path,
    public string $method = 'GET',
  ) {}
}

#[Route('/users', 'GET')]
#[Middleware(AuthMiddleware::class)]
class UserController {
  #[Route('/users/{id}')]
  public function show(int $id): Response { ... }
}

Читання атрибутів

$ref = new ReflectionClass(UserController::class);
$attrs = $ref->getAttributes(Route::class);
foreach ($attrs as $attr) {
  $route = $attr->newInstance(); // Route('/users', 'GET')
}

Де використовуються

DI-контейнери, роутери, ORM-маппінг, валідатори, серіалізатори. Symfony, Doctrine активно використовують атрибути замість XML/YAML конфігурації.