Attributes

PHP 🟡 Mid

Définition

Métadonnées structurées ajoutées au code via #[...], introduites en PHP 8.0. Elles remplacent les annotations en commentaires par une syntaxe native. Le langage fournit désormais ses propres attributs : #[\Override] (PHP 8.3), #[\Deprecated] (PHP 8.4) et #[\NoDiscard] (PHP 8.5).

Analogie

Comme des étiquettes collées sur des boites : elles décrivent 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

Configuration déclarative (routes, validation, mapping ORM) et signaux au moteur ou aux outils : méthode surchargée, fonction dépréciée, valeur de retour à ne pas ignorer.

Anti-pattern

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

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre