La plupart des méthodes ont besoin d’une instance pour fonctionner : elles lisent ou modifient l’état propre à cet objet. Une méthode statique, elle, se comporte comme une simple fonction rangée dans une classe pour des raisons d’organisation : elle ne dépend d’aucun objet particulier et peut être appelée directement sur la classe.
Fonctionnement en PHP
On la déclare avec le mot-clé static et on l’appelle avec l’opérateur :: : MaClasse::maMethode(). À l’intérieur d’une méthode statique, $this n’existe pas, puisqu’il n’y a pas d’instance ; on utilise self:: ou static:: pour référencer la classe elle-même.
Dans WordPress
Les classes de blocs Gutenberg et certaines API orientées objet exposent des méthodes statiques comme point d’entrée, par exemple des méthodes register() qui déclarent un bloc sans qu’on ait besoin d’instancier la classe. C’est aussi un moyen courant d’implémenter un patron singleton pour une classe de plugin unique en son genre, où une seule instance doit exister pendant toute la durée de la requête. Certaines fonctions utilitaires internes du cœur, exposées via des classes wrapper, suivent le même principe pour rester appelables sans configuration préalable.
Exemple
class Convertisseur {
public static function centimetresEnPouces(float $cm): float {
return $cm / 2.54;
}
}
echo Convertisseur::centimetresEnPouces(10);
À ne pas confondre avec
Une méthode statique n’est pas une méthode « globale » indépendante de toute classe : elle reste soumise à la visibilité (private, protected) et peut être héritée ou redéfinie par une classe fille. Abuser des méthodes statiques rend cependant le code plus difficile à tester, car on ne peut pas facilement remplacer leur comportement par un double de test lors d’une suite de tests unitaires, contrairement à une méthode d’instance qu’on peut substituer via une interface.