Bonjour,
pour vérifier la nécessité d'avoir un point d'entrée unique si on utilise l'autoloader codé par rawsrc, j'ai codé un test sans redirection vers un point d'entrée unique, et ça marche.
Donc pas sûr de cette nécessité...
Voici mon test :
_classes
_____Classe1
__________Classe1.php
_____Classe2
__________Classe2.php
autoloader.php
index.php
Classe1.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php namespace _classes\Classe1; class Classe1 { private $Attribut; public function __construct() {} public function SetAttr($val) { $this->Attribut=$val; } public function DispAttr() { echo '<br/>'.$this->Attribut; } } ?>
Classe2.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php namespace _classes\Classe2; class Classe2 { private $Attribut; public function __construct() {} public function SetAttr($val) { $this->Attribut=$val; } public function DispAttr() { echo '<br/>'.$this->Attribut; } } ?>
autoloader.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php class Autoloader { static function register() { define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR); $autoloader = function($full_class_name) { // on prépare le terrain : on remplace le séparteur d'espace de nom par le séparateur de répertoires du système $name = str_replace('\\', DIRECTORY_SEPARATOR, $full_class_name); // on construit le chemin complet du fichier à inclure :a // il faut que l'autoloader soit toujours à la racine du site $path = DIR_ROOT.$name.'.php'; // on vérifie que le fichier existe et on l'inclut // sinon on passe la main à une autre autoloader (return false) if (is_file($path)) { include $path; return true; } else { return false; } }; spl_autoload_register($autoloader); } } Autoloader::register();
index.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php //autoloading include_once 'Autoloader.php'; use _classes\Classe1\Classe1; use _classes\Classe2\Classe2; $Attr1=new Classe1(); $Attr2=new Classe2(); $Attr1->SetAttr(5); $Attr1->DispAttr(); $Attr2->SetAttr(7); $Attr2->DispAttr(); ?>
et ça donne l'affichage :
Ca prouve pas qui y a pas besoin de point d'entrée unique ?5
7
Partager