Relatif, Absolue
On peut créer des espaces à l'intérieur d'un autre espace
Méthode :
Exemple de deux classes MaClasse que l'on met dans deux espaces différents Espace1 et Espace2 eux même dans un espace Espace.
espace1.php
1
2
namespace Espace\Espace1;
3
class MaClasse
4
{
5
public function espace(){
6
return "Je suis la classe ".__CLASS__." j'appartiens à " . __NAMESPACE__;
7
}
8
}
espace2.php
1
2
namespace Espace\Espace2;
3
class MaClasse
4
{
5
public function espace(){
6
return "Je suis la classe ".__CLASS__." j'appartiens à " . __NAMESPACE__;
7
}
8
}
Méthode : Utilisation
Pour créer une instance, on ajoute simplement les différents espaces à la classe :
1
2
require "espace1.php";
3
require "espace2.php";
4
$instance1 = new Espace\Espace1\MaClasse;
5
$instance2 = new Espace\Espace2\MaClasse;
6
echo $instance1->espace();
7
// affiche Je suis la classe Espace\Espace1\MaClasse j'appartiens à Espace\Espace1
8
echo $instance1->espace();
9
// affiche Je suis la classe Espace\Espace2\MaClasse j'appartiens à Espace\Espace2
Méthode : Relatif
Jusqu'à présent nous partions de l'espace global, ici, nous partons de l'espace Espace.
L'appel aux classes se fera donc relativement à cet espace.
1
2
namespace Espace;
3
require "espace1.php";
4
require "espace2.php";
5
$instance1 = new Espace1\MaClasse;
6
$instance2 = new Espace2\MaClasse;
7
echo $instance1->espace();
8
// affiche Je suis la classe Espace\Espace1\MaClasse j'appartiens à Espace\Espace1
9
echo $instance2->espace();
10
// affiche Je suis la classe Espace\Espace2\MaClasse j'appartiens à Espace\Espace2
Méthode : Absolue
L'appel aux classes peut se faire par rapport à l'espace global, c'est à dire de façon absolue.
Il suffit de commencer l'appel aux classes par un antislash.
1
2
namespace Espace;
3
require "espace1.php";
4
require "espace2.php";
5
$instance1 = new \Espace\Espace1\MaClasse;
6
$instance2 = new \Espace\Espace2\MaClasse;
7
echo $instance1->espace();
8
// affiche Je suis la classe Espace\Espace1\MaClasse j'appartiens à Espace\Espace1
9
echo $instance2->espace();
10
// affiche Je suis la classe Espace\Espace2\MaClasse j'appartiens à Espace\Espace2
Méthode : Les Alias
L'utilisation des alias se fait en absolue.
1
2
namespace Espace;
3
use Espace\Espace1\MaClasse as Classe1; // absolue
4
use Espace\Espace2\MaClasse as Classe2; // absolue
5
require "espace1.php";
6
require "espace2.php";
7
$instance1 = new Classe1;
8
$instance2 = new Classe2;
9
echo $instance1->espace();
10
// affiche Je suis la classe Espace\Espace1\MaClasse j'appartiens à Espace\Espace1
11
echo $instance1->espace();
12
// affiche Je suis la classe Espace\Espace2\MaClasse j'appartiens à Espace\Espace2