vendredi 25 septembre 2026

À propos

Contact

Lexique · PHP

Visibilité

En anglais : « Visibility (public/private/protected) »

Mot-clé (public, private ou protected) qui définit depuis où une propriété ou une méthode d'une classe peut être appelée ou modifiée.

Toutes les propriétés et méthodes d’une classe n’ont pas vocation à être accessibles de partout : certaines constituent des détails internes qui pourraient changer sans prévenir, d’autres forment l’interface publique sur laquelle le reste du code peut s’appuyer en confiance. La visibilité formalise cette distinction plutôt que de la laisser à une simple convention de nommage.

Les trois niveaux en PHP

  • public : accessible depuis n’importe où, y compris en dehors de la classe.
  • protected : accessible depuis la classe elle-même et ses classes filles, mais pas de l’extérieur.
  • private : accessible uniquement depuis la classe où l’élément est déclaré, même les classes filles ne peuvent pas y toucher directement.

Dans WordPress

Les classes du cœur restent souvent permissives et déclarent beaucoup de propriétés en public pour rester compatibles avec du code ancien qui y accède directement, comme certaines propriétés de WP_Post. Dans une extension bien conçue, restreindre en private ou protected ce qui n’a pas besoin d’être exposé évite qu’un autre plugin ne vienne modifier un état interne par erreur.

Exemple

class Panier {
    private array $articles = [];

    public function ajouter(string $sku): void {
        $this->articles[] = $sku;
    }

    protected function total(): int {
        return count($this->articles);
    }
}

Pièges fréquents

Tenter d’accéder à une propriété private depuis l’extérieur de la classe déclenche une erreur fatale, pas un simple avertissement silencieux comme on pourrait le croire. Sans indication explicite, une propriété ou méthode PHP est publique par défaut, ce qui pousse à toujours préciser la visibilité pour un code plus sûr et plus lisible.