Bonjour à toute et à tous.
Je suis sur que cette question à été posé un milliard de fois. Mais n'ayant trouvé de réponse pour régler mon problème. Je préfère demander une réponse ici. J'ai suivis le tuto du jour 2. Et sur la dernière manip j'ai une erreur qui s'affiche
SCREAM: Error suppression ignored for
Warning: require(controller\controller.php) <a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in C:\wamp\www\Site\core\dispatcher.php on line 47
Fatal error: require() <a href='function.require'>function.require</a>]: Failed opening required 'controller\controller.php' (include_path='.;C:\php\pear') in C:\wamp\www\Site\core\dispatcher.php on line 47
D'après ce que j'ai compris il ne trouve pas le chemin du controller. Pourtant j'ai suivis le tuto à la lettre. Voici mon dispatcher.
<?php
/**
* Dispatcher
* Permet de charger le controller en fonction de la requête utilisateur
**/
class dispatcher {
var $request ;
/**
* Fonction principale du dispatcher
* Charge le controller en fonction du routing
**/
function __construct(){
$this->request = new Request();
Router::parse($this->request->url,$this->request);
$controller = $this->loadcontroller();
if(!in_array($this->request->action,get_class_methods($controller))){
$this->error('Le contoller'.$this->request->controller.'n\'a pas de méthode'.$this->request->action);
}
call_user_func_array(array($controller,$this->request->action),$this->request->params);
$controller->render($this->request->action);
}
/**
* Permet de générer une page d'erreur en cas de problème au niveau du routing (page inexistante)
**/
function error(){
header("HTTP/1.0 404 Not Found");
$controller = new Controller($this->request->action);
$controller->set('message',$message);
$controller->render('/errors/404');
die();
}
/**
* Permet de charger le controller en fonction de la requête utilisateur
**/
function loadcontroller(){
$name = ($this->request->controller).'controller';
$file = 'controller'.DS.$name.'.php';
require $file;
return new $name($this->request);
}
}
?>
Merci pour les futurs aide que vous pourrez m'apporter. Je vais chercher de encore de mon coté on ne sais jamais ! ^^ !
Bonjour,
Assures toi d'avoir une URL du genre : localhost/pages/index
En ce moment, il cherche le controlleur "controller.php" car tu est probablement à l'élément racine.
Tu vas voir plus tard dans les tutoriels suivants qu'on peut rediriger si le controller est absent.
Cordialement,
Ramz.
Merci de m'avoir aider même si je te remercie en retard ^^". Cela m'a aider et j'ai enfin compris. Bye et bon surf :3