# Attribut PHP

> Métadonnée structurée, introduite en PHP 8, ajoutée au-dessus d'une classe, méthode ou propriété avec la syntaxe #[...], lue par le code à l'exécution.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/attribut-php/

Coller une étiquette d'information sur une classe ou une fonction, que le code pourra relire plus tard pour adapter son comportement : c'est le rôle d'un attribut PHP, introduit avec la version 8 du langage en remplacement progressif des annotations en commentaires.

## Encore peu répandu dans l'écosystème WordPress

WordPress maintient une compatibilité avec d'anciennes versions de PHP, ce qui explique que les attributs restent peu utilisés dans le cœur du logiciel. Des plugins ou frameworks modernes bâtis sur WordPress, notamment ceux qui exigent PHP 8.1 ou supérieur, commencent néanmoins à les employer pour déclarer des routes d'API REST ou des gestionnaires d'action de façon déclarative.

## Exemple

```
#[Attribute]
class Route
{
    public function __construct(public string $chemin) {}
}

#[Route('/produits')]
class ControleurProduits
{
}
```

Un lecteur d'attributs, écrit à l'aide de l'API de réflexion PHP (`ReflectionClass::getAttributes()`), peut ensuite parcourir ces métadonnées à l'exécution pour enregistrer automatiquement la route associée.

## À ne pas confondre avec un attribut HTML

- Un attribut PHP (`#[...]`) est une métadonnée du langage lue par du code PHP ; un attribut HTML (comme `class` ou `data-id`) qualifie une balise dans le navigateur. Les deux notions partagent un nom mais n'ont aucun rapport technique.
- Avant PHP 8, la même idée s'exprimait via des commentaires de documentation spécialement formatés (annotations), analysés par une bibliothèque tierce faute de support natif du langage.
- Un attribut ne modifie jamais directement le comportement du code : il faut explicitement le lire via la réflexion pour qu'il produise un effet.
