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
<?php
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
<?php
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éthodeUtilisation

Pour créer une instance, on ajoute simplement les différents espaces à la classe :

1
<?php
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éthodeRelatif

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
<?php
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éthodeAbsolue

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
<?php
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éthodeLes Alias

L'utilisation des alias se fait en absolue.

1
<?php
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