Bonjour,

J'essaie de faire un routeur. J'y suis presque mais je butte sur un truc bizarre...

Dans ma classe Routeur, j'ai cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
	public function appelerAction()
	{
		if($this->verifierModule() && $this->verifierAction())
		{
			$fichierControleur = $_SERVER['DOCUMENT_ROOT'].'/monsite/application/modules/'.$this->module.'/Controller/'.$this->module.'.php';
			$classeControleur = $this->module;
 
			require $fichierControleur;
			$controleur = new $classeControleur();
			$controleur->index();
 
		}
	}
Et j'obtiens l'erreur suivante dans le log Apache :
PHP Fatal error: Class 'Accueil' not found
$this->module est bien valorisé à 'Accueil' ; le fichier Accueil.php existe bien au bon endroit (je n'ai d'ailleurs pas d'erreur sur le require).

Bizarrement, quand je change la ligne $controleur = new $classeControleur(); par $controleur = new Accueil();, je n'ai plus l'erreur et la suite du programme se déroule normalement.

J'ai d'ailleurs le même souci avec l'action à lancer si je remplace $controleur->index(); par $controleur->$this->action();

EDIT : Je ne sais plus comment j'ai fait tout à l'heure mais avec $controleur = new Accueil();, ça ne fonctionne plus non plus !
PHP Fatal error: Class 'application\\Controller\\Accueil' not found
Il considère le namespace où est situé le routeur (application/Controller) mais pas le fichier pourtant correctement required à la ligne juste au-dessus de l'instanciation du contrôleur (application/modules/Accueil/Controller/Accueil.php).