Les espaces de noms
Définition des espaces de noms
Les espaces de noms
PHP Manual

## Introduction aux espaces de noms

Que sont les espaces de noms ? Dans leur définition la plus large, ils représentent un moyen d'encapsuler des éléments. Cela peut être conçu comme un concept abstrait, à différents endroits. Par exemple, dans un système de fichiers, les dossiers représentent un groupe de fichiers associés, et sert d'espace de noms pour les fichiers qu'il contient. Un exemple concret est que le fichier foo.txt peut exister dans les deux dossiers /home/greg et /home/other, mais que les deux copies de foo.txt ne peuvent pas co-exister dans le même dossier. De plus, pour accéder au fichier foo.txt depuis l'extérieur du dossier /home/greg, il faut préciser le nom du dossier en utilisant un séparateur de dossier, tel que /home/greg/foo.txt. Le même principe applique les espaces de noms au monde de la programmation.

Dans le monde PHP, les espaces de noms sont conçus pour résoudre deux problèmes que les auteurs de bibliothèques et applications rencontrent lors de la réutilisation d'éléments tels que des classes ou des bibliothèques de fonctions :

1. Collisions de noms entre le code que vous créez, les classes, fonctions ou constantes internes de PHP, ou celle de bibliothèques tierces.
2. La capacité de faire des alias ou de raccourcir des Noms_Extremement_Long pour aider à la résolution du premier problème, et améliorer la lisibilité du code.

Les espaces de noms PHP fournissent un moyen pour regrouper des classes, fonctions ou constantes. Voici un exemple de syntaxe des espaces de noms PHP :

Exemple #1 Exemple de syntaxe des espaces de noms

`<?php
namespace mon\nom; // Voyez la section "Définition des espaces de noms"
class MaClasse {}
function mafonction() {}
const MACONSTANTE = 1;
$a = new MaClasse;
$c = new \mon\nom\MaClasse; // Voyez la section "Espace global"
$a = strlen('bonjour'); // Voyez "Utilisation des espaces de noms : retour
// à l'espace global
$d = namespace\MACONSTANTE; // Voyez "L'opérateur namespace et la constante __NAMESPACE__
$d = __NAMESPACE__ . '\MACONSTANTE';
echo constant($d); // Voyez "Espaces de noms et fonctionnalités dynamiques"
?>`

Les espaces de noms sont disponibles en PHP depuis PHP 5.3.0.

Les espaces de noms
Définition des espaces de noms
Les espaces de noms
PHP Manual