Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je fais
<?php
class Dispatcher{
var $request;
function __construct(){
$this->request = new REQUEST();
Router:: parse($this->request->url,$this->request);
$controller = $this->loadController();
$controller->view();
}
function loadController(){
$name = ucfirst($this->request->controller).'Controller';
$file = ROOT.DS.'controller'.DS.$name.'.php';
require $file;
$controller = new $name($this->request);
}
}
?>
Ce que je veux
"vous voyez" sur ma page
Ce que j'obtiens
Fatal error: Call to a member function view() on null in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Tuto\site\core\Dispatcher.php on line 10
Bonjour,
à ta ligne 10 tu fais :
$controller->view();
Mais ton erreur (qu'il faut lire hein... parce qu'elle est assez claire) te dit que $controller
est null et que donc il ne connait pas la méthode view()
sur cet objet qui est null. Tu dois donc regarder ta fonction loadController()
si tout se passe correctement. Et tu verras rapidement qu'il te manque quelque chose ;)
la fonction var_dump est ton ami en debug.
pour tester, tu peux ajouter cette ligne :
$controller = $this->loadController();
var_dump($controller); // va te retourner null mais ne devrait pas.
$controller->view();
La méthode loadController devrait retourner le controller, là elle ne retourne rien, d'où l'erreur.