<?php
/**
* Dispatcher
* Permet de charger le controller en fonction de la requête utilisateur
**/
class Dispatcher{
var $request; //Objet 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 , array_diff(get_class_methods(controller),get\_class\_methods('Controller')))){
$this->error('Le controller :"'.this->request->controller.'" n\'a pas de methode "'.this->request->action.'"');
}
call\_user\_func\_array(array(controller,this->request->action),this->request->params);
controller->render(this->request->action);//rends automatiquement la vue
}
/**
*Permet de générer une page d'erreur en cas de problème au niveau du routing (page inexistante)
**/
function error(message){
$controller = new Controller(this->request);
controller->e404(message);
}
function loadController(){
name = ucfirst(this->request->controller).'Controller';//met une majuscule en premier
file = ROOT.DS.'controller'.DS.name.'.php';
require file;
return new $name(this->request);
}
}
?>
J'ai revisionné le tuto et j'ai bien la même chose?