Attributes

PHP 🟡 Mid

Definition

Metadonnees structurees ajoutees au code via #[...], introduites en PHP 8.0. Remplacent les annotations en commentaires par une syntaxe native.

Analogie

Comme des etiquettes collees sur des boites : elles decrivent le contenu sans le modifier.

Exemple de code

#[Route('/api/users', methods: ['GET'])]
class UserController {
  #[Cache(ttl: 3600)]
  public function list(): Response {
    // ...
  }
}

Cas d'usage

Pour la configuration declarative : routes, validation, serialisation, ORM mapping.

Anti-pattern

Surcharger les classes d'attributs au point de rendre le code illisible.
#core#interview#php8