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 :
Et j'obtiens l'erreur suivante dans le log Apache :
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(); } }
$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).PHP Fatal error: Class 'Accueil' not found
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 !
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).PHP Fatal error: Class 'application\\Controller\\Accueil' not found
Partager