vendredi 25 septembre 2026

À propos

Contact

Lexique · PHP

Méthode magique

En anglais : « Magic method »

Méthode dont le nom commence par deux underscores et que PHP appelle automatiquement dans des situations précises, sans appel explicite du développeur.

PHP réserve une famille de noms de méthodes préfixés par deux underscores (__construct, __get, __toString…) qu’il invoque lui-même à certains moments clés du cycle de vie d’un objet, un peu comme des réflexes déclenchés automatiquement plutôt que des gestes volontaires du développeur.

Les plus courantes

  • __construct() : appelée à la création de l’objet.
  • __get() et __set() : interceptent l’accès à des propriétés inexistantes ou inaccessibles.
  • __call() : intercepte l’appel d’une méthode inexistante.
  • __toString() : définit ce qui s’affiche quand l’objet est converti en chaîne.
  • __wakeup() et __sleep() : interviennent lors de la désérialisation et de la sérialisation.

Dans WordPress

On les croise en particulier dans WP_Post et WP_User, dont l’accès à certaines propriétés passe par __get() pour charger des métadonnées à la demande plutôt que systématiquement. Certaines classes de widgets et de blocs utilisent aussi __construct() pour enregistrer automatiquement leurs réglages.

Exemple

class Configuration {
    private array $valeurs = ['theme' => 'sombre'];

    public function __get($nom) {
        return $this->valeurs[$nom] ?? null;
    }
}

$config = new Configuration();
echo $config->theme; // "sombre"

Pièges fréquents

Abuser des méthodes magiques rend le code difficile à suivre pour un IDE ou un autre développeur, car les propriétés n’apparaissent nulle part explicitement. Il vaut mieux les réserver à des besoins précis (compatibilité ascendante, chargement paresseux) plutôt qu’en faire un style de programmation systématique.