bonjour j'ai plusieurs erreurs qui s'affiche que je n'arrive pas a traduire

les erreurs sont les suivante :

Notice: Undefined property: Request::$controller in C:\wamp\www\core\Dispatcher.php on line 13

Warning: require(C:\wamp\www\controller\Controller.php) <a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in C:\wamp\www\core\Dispatcher.php on line 15

Fatal error: require() <a href='function.require'>function.require</a>]: Failed opening required 'C:\wamp\www\controller\Controller.php' (include_path='.;C:\php\pear') in C:\wamp\www\core\Dispatcher.php on line 15
Call Stack

merci de bien vouloir m'expliquer ces erreurs sa me servira surement si ces erreurs revienne

je mets mon fichier Dispatcher d'ou proviens les erreurs

<?php
class Dispatcher{
     var $request; 

     function __construct(){
        $this->request = new Request(); 
        Router::parse($this->request->url,$this->request);
        $controller = $this->loadController();
        $controler->view();
     }
     function loadController(){
        $name = ucfirst($this->request->controller).'Controller';
        $file = ROOT.DS.'controller'.DS.$name.'.php';
        require $file;
        $controller =new $name($this->request);
     }
}
?>

1 réponse


Le problème ne doit pas venir de ton fichier Dispatcher.php mais Router.php

Notice: Undefined property: Request::$controller in C:\wamp\www\core\Dispatcher.php on line 13

Cette erreur signifie que la variable
$this->request->controller n'existe pas (Or la variable $this->request existe), et c'est le Router qui va se charger d'initialiser cette variable (Donc le Router ne doit pas bien faire son travail [Mets aussi ce fichier dans un prochaine message pour le voir]).

Warning: require(C:\wamp\www\controller\Controller.php) <a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in C:\wamp\www\core\Dispatcher.php on line 15

Fatal error: require() <a href='function.require'>function.require</a>]: Failed opening required 'C:\wamp\www\controller\Controller.php' (include_path='.;C:\php\pear') in C:\wamp\www\core\Dispatcher.php on line 15
Call Stack

Quand à ces 2 erreurs elles vont souvent de paire, pour signifier que le fichier que tu as voulu importer avec un "require" n'a pas été trouvé.
Le fichier que tu importes dépends de la variable $file, qui elle même dépend de la variable $name, or la variable $name est initialisé avec $this->request->controller qui n'a pas été définis (d’où le problème).