# Visibilité

> 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.

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

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.
