vendredi 25 septembre 2026

À propos

Contact

Lexique · PHP

Interface

En anglais : « 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.

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.