# Interface

> Contrat qui liste des méthodes qu'une classe s'engage à implémenter, sans en fournir le code, afin de garantir un comportement commun.

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

Une interface décrit ce qu'un objet doit savoir faire, sans dire comment il le fait : un peu comme une fiche de poste qui énumère des compétences requises sans préciser la méthode de travail de chacun. Deux classes très différentes peuvent ainsi respecter la même interface tout en fonctionnant de façon totalement distincte en coulisses.

## Déclaration en PHP

Une interface se déclare avec le mot-clé `interface` et ne contient que des signatures de méthodes, sans corps : `interface Cache { public function get(string $cle); public function set(string $cle, $valeur): void; }`. Une classe l'implémente avec `implements`, et peut en implémenter plusieurs à la fois, contrairement à l'héritage de classe qui est unique.

## Dans WordPress

Le cœur historique s'appuie surtout sur des conventions de nommage plutôt que sur des interfaces formelles, mais certaines API modernes en font usage, comme `WP_REST_Controller` ou les classes de blocs. Dans une extension, définir une interface `Reglable` ou `Exportable` permet d'écrire du code qui fonctionne avec n'importe quelle implémentation future sans modification.

## Exemple

```
interface Exportable {
    public function versJson(): string;
}

class Produit implements Exportable {
    public function versJson(): string {
        return json_encode(['nom' => $this->nom]);
    }
}
```

## Bon à savoir

Depuis PHP 8, les interfaces peuvent aussi imposer des constantes. Une classe qui implémente une interface doit reprendre l'intégralité de sa signature, y compris les types de retour déclarés, sous peine d'erreur fatale à l'exécution.
