Deux personnes qui portent exactement le même nom de famille dans deux villages différents ne posent aucun problème tant qu’on précise le village d’origine : l’espace de noms fonctionne de la même façon en PHP, en préfixant les identifiants pour lever toute ambiguïté.
Un vrai enjeu dans l’écosystème des plugins WordPress
WordPress ne recourt lui-même que très peu aux espaces de noms dans son cœur historique, préférant un préfixe textuel devant chaque nom de fonction (comme wp_). Un plugin moderne bien écrit, lui, utilise volontiers un espace de noms dédié pour éviter tout conflit avec un autre plugin qui définirait, par hasard, une classe du même nom générique.
Exemple
namespace MonAgence\Reservation;
class GestionnaireCreneaux
{
public function disponibles(): array
{
return [];
}
}
// Utilisation ailleurs dans le projet
use MonAgence\Reservation\GestionnaireCreneaux;
$gestionnaire = new GestionnaireCreneaux();
Bon à savoir
- L’instruction
useimporte un espace de noms pour éviter d’écrire son chemin complet à chaque utilisation dans le fichier. - Un antislash en préfixe (
\DateTime) force PHP à chercher la classe dans l’espace de noms global, utile depuis l’intérieur d’un espace de noms personnalisé pour référencer une classe native du langage. - L’espace de noms d’une classe doit correspondre à l’arborescence de dossiers déclarée dans l’autochargement PSR-4 de Composer, sous peine d’erreur « Class not found » à l’exécution.