Attributes
PHP 🟡 MidDé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.
Termes liés
Fiche mise à jour le 2026-09-27