L'espace de noms commence par le mot clé de l'espace de noms , suivi du nom de l'espace de noms, comme indiqué ci-dessous:
namespace MyNamespace;
De cette façon, nous pouvons placer différentes classes dans différents espaces de noms, améliorant ainsi l'organisation et la maintenabilité du code.
Supposons que nous ayons un projet et que la structure des fichiers du projet est la suivante:
- project
- src
- MyNamespace
- MyClass.php
Dans myclass.php , nous définissons une classe MyClass . Afin d'associer la classe à l'espace de noms MyNamespace , nous devons ajouter une instruction de l'espace de noms au début du fichier myclass.php , comme suit:
namespace MyNamespace;
class MyClass {
// Implémentation de classe
}
De cette façon, la classe MyClass appartient à l'espace de noms MyNamespace .
Dans d'autres fichiers PHP, nous pouvons introduire l'espace de noms via l'instruction UTILISATION , puis utiliser cette classe:
use MyNamespace\MyClass;
$object = new MyClass();
Supposons que notre structure de répertoire de projet soit la suivante:
- project
- src
- MyNamespace
- MyClass.php
- SubNamespace
- MySubClass.php
Dans myclass.php , nous définissons la classe MyClass sous l'espace de noms MyNamespace ; Et dans mysubclass.php , nous définissons la classe MySubClass sous l'espace de noms MyNamespace \ SubNamespace .
Dans d'autres fichiers PHP, nous pouvons introduire ces deux classes de la manière suivante:
use MyNamespace\MyClass;
use MyNamespace\SubNamespace\MySubClass;
$myClass = new MyClass();
$mySubClass = new MySubClass();
De cette façon, nous pouvons non seulement voir clairement la relation hiérarchique entre les classes dans le code PHP, mais aussi trouver avec précision les fichiers correspondants dans le système de fichiers.
L'utilisation de l'espace de noms peut rationnellement rendre la structure de votre code de projet plus claire et réduire le chaos en développement. L'organisation de classes et de modules fonctionnels pertinents dans l'espace de noms correspondant peut non seulement améliorer la qualité du code, mais également aider l'équipe de développement à collaborer plus efficacement.
Structure du projet:
- project
- src
- MyNamespace
- MyClass.php
- SubNamespace
- MySubClass.php
- index.php
Contenu du fichier myclass.php :
<?php
namespace MyNamespace;
class MyClass {
public function sayHello() {
echo "Hello from MyClass!";
}
}
Contenu du fichier mysubclass.php :
<?php
namespace MyNamespace\SubNamespace;
class MySubClass {
public function sayHello() {
echo "Hello from MySubClass!";
}
}
Contenu du fichier index.php :
<?php
require_once 'src/MyNamespace/MyClass.php';
require_once 'src/MyNamespace/SubNamespace/MySubClass.php';
use MyNamespace\MyClass;
use MyNamespace\SubNamespace\MySubClass;
$myClass = new MyClass();
$myClass->sayHello();
$mySubClass = new MySubClass();
$mySubClass->sayHello();
Après avoir exécuté le fichier index.php , la sortie est la suivante:
Hello from MyClass!
Hello from MySubClass!