Les espaces de noms
PHP Manual

Utilisation des espaces de noms

Toutes les classes et fonctions, dans un espace de noms, peuvent être référencées par le nom complet - e.g. MyProject::DB::Connection ou MyProject::DB::connect - à n'importe quel moment.

Exemple #1 Utilisation du nom de l'espace de noms

<?php
require 'MyProject/Db/Connection.php';
$x = new MyProject::DB::Connection;
MyProject::DB::connect();
?>

Les espaces de noms peuvent être importées dans le contexte courant (global ou de l'espace de noms) en utilisant l'opérateur use. La syntaxe est la suivante :

<?php
/* ... */
use Some::Name as Othername;

// La forme simplifiée de use:
use Foo::Bar;
// Ce qui est identique à :
use Foo::Bar as Bar;
?>
Le nom importé fonctionne comme ceci : chaque fois que le compilateur rencontre le nom local Othername (comme nom stand-alone ou comme préfixe au nom long, séparé par ::), le nom Some::Name importé y est substitué.

L'opérateur use ne peut être utilisé que dans le contexte global, et non dans une classe ou une fonction. Les noms importés ont des effets depuis le point d'importation jusqu'à la fin du fichier courant. Il est recommandé d'effectuer l'importation au tout début du fichier afin d'éviter toute confusion.

Exemple #2 Importation et utilisation de l'espace de noms

<?php
require 'MyProject/Db/Connection.php';
use 
MyProject::DB;
use 
MyProject::DB::Connection as DbConnection;

$x = new MyProject::DB::Connection();
$y = new DB::connection();
$z = new DbConnection();
DB::connect();
?>

Note: L'opération d'importation s'effectue uniquement lors de la compilation ; tous les noms locaux sont convertis en leur équivalent au moment de la compilation. Notez que le compilateur ne traduit pas les noms en simples chaînes, ainsi les fonctions de rappel ne sauraient se prévaloir des règles d'importation.


Les espaces de noms
PHP Manual