public function run() { //Nécessaire pour l'affichage de la vue include_once 'Models/Template.php'; include_once 'Models/Model.php'; include_once 'functions.php'; //Création de controlleur---------------------------- include_once 'Controllers/ControllerFactory.php'; $controller = ControllerFactory::createController(); //On lance l'action $action = self::getInstance()->getActionName($controller); $controller->{$action}(); }
/** Lance le serveur */ function run() { // racine du serveur a enregistrer qq part (pour l'instant ici) $root = '/blogmarks/servers/atom'; // On construit le tableau d'arguments pour les filtres $args = array(); // on extrait l'URI relative $uri = $_SERVER['REQUEST_URI']; //***** DEBUG echo $uri."<br/>".$root; $uri = ereg_replace($root, '', $uri); $args['uri'] = $uri; $args['method'] = $_SERVER['REQUEST_METHOD']; $args['content'] = $_GLOBALS['HTTP_RAW_POST_DATA']; // On filtre la requête $filter = new FilterChainRoot(array(new ContextBuilderFilter(), new AuthenticateFilter())); $ret = $filter->execute(&$args); if (BlogMarks::isError($ret)) { // erreur de filtre echo $ret->getMessage(); return; } // **** DEBUG echo "objet : " . $args['object'] . "<br/>"; echo "method : " . $args['method'] . "<br/>"; echo "tag : " . $args['tag'] . "<br/>"; echo "user : "******"<br/>"; echo "id : " . $args['id'] . "<br/>"; echo "auth_str :" . $args['auth_str'] . "<br/>"; // ********** // On construit le controlleur selon le type d'objet de la requête $ctrlerFactory = new ControllerFactory(); $ctrler = $ctrlerFactory->createController($args['object']); if (BlogMarks::isError($ctrler)) { echo $ctrler->getMessage(); exit(1); } // On lance le controlleur pour l'objet de la requête $response = $ctrler->execute($args); if (BlogMarks::isError($response)) { // erreur du controlleur de requête return; } // On applique le renderer atom a la reponse et on la renvoit $rendererFactory = new rendererFactory(); $renderer = $rendererFactory->createRenderer($args['object']); // GERER LA REPONSE HTTP echo "HTTP/1.1 200 Ok\n"; $response->accept($renderer); echo $renderer->render(); }