(PHP 5 >= 5.3.0, PHP 7, PHP 8)
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, pour plusieurs raisons. Par exemple, dans un système de fichiers, les dossiers représentent un groupe de fichiers associés et servent d'espace de noms pour les fichiers qu'ils contiennent. 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 s'applique aux espaces de noms dans le monde de la programmation.
Dans le monde PHP, les espaces de noms sont conçus pour résoudre deux problèmes que rencontrent les auteurs de bibliothèques et d'applications lors de la réutilisation d'éléments tels que des classes ou des bibliothèques de fonctions :
Les espaces de noms PHP fournissent un moyen pour regrouper des classes, interfaces, 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
Note: Les noms d'espaces de noms ne sont pas sensible à la casse.
Note:
Les espaces de noms
PHP
, mais aussi les noms composés commençant par ces noms (commePHP\Classes
) sont réservés pour l'utilisation interne du langage, et ne doivent pas être utilisés dans le code de l'espace utilisateur.