aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-12-15 11:19:38 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2013-12-15 11:19:38 +0100
commitd0c855ffc288faed7bba81ed393688f5a86e9a10 (patch)
tree74205125ac60bedfecf3185c5c12e61830ed7f5d /lib
parent651d2a74f3d3c37f01726f2345cb2536e8e6b873 (diff)
Delete Dispatcher.php
Diffstat (limited to 'lib')
-rw-r--r--lib/minz/Dispatcher.php138
1 files changed, 0 insertions, 138 deletions
diff --git a/lib/minz/Dispatcher.php b/lib/minz/Dispatcher.php
deleted file mode 100644
index 2898b5f00..000000000
--- a/lib/minz/Dispatcher.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-/**
- * MINZ - Copyright 2011 Marien Fressinaud
- * Sous licence AGPL3 <http://www.gnu.org/licenses/>
-*/
-
-/**
- * Le Dispatcher s'occupe d'initialiser le Controller et d'executer l'action
- * déterminée dans la Request
- * C'est un singleton
- */
-class Minz_Dispatcher {
- const CONTROLLERS_PATH_NAME = '/Controllers';
-
- /* singleton */
- private static $instance = null;
-
- private $router;
- private $controller;
-
- /**
- * Récupère l'instance du Dispatcher
- */
- public static function getInstance ($router) {
- if (is_null (self::$instance)) {
- self::$instance = new Minz_Dispatcher ($router);
- }
- return self::$instance;
- }
-
- /**
- * Constructeur
- */
- private function __construct ($router) {
- $this->router = $router;
- }
-
- /**
- * Lance le controller indiqué dans Request
- * Remplit le body de Response à partir de la Vue
- * @exception Minz_Exception
- */
- public function run () {
- $cache = new Minz_Cache();
- // Le ob_start est dupliqué : sans ça il y a un bug sous Firefox
- // ici on l'appelle avec 'ob_gzhandler', après sans.
- // Vraisemblablement la compression fonctionne mais c'est sale
- // J'ignore les effets de bord :(
- ob_start ('ob_gzhandler');
-
- if (Minz_Cache::isEnabled () && !$cache->expired ()) {
- ob_start ();
- $cache->render ();
- $text = ob_get_clean();
- } else {
- while (Minz_Request::$reseted) {
- Minz_Request::$reseted = false;
-
- try {
- $this->createController ('FreshRSS_' . Minz_Request::controllerName () . '_Controller');
- $this->controller->init ();
- $this->controller->firstAction ();
- $this->launchAction (
- Minz_Request::actionName ()
- . 'Action'
- );
- $this->controller->lastAction ();
-
- if (!Minz_Request::$reseted) {
- ob_start ();
- $this->controller->view ()->build ();
- $text = ob_get_clean();
- }
- } catch (Minz_Exception $e) {
- throw $e;
- }
- }
-
- if (Minz_Cache::isEnabled ()) {
- $cache->cache ($text);
- }
- }
-
- Minz_Response::setBody ($text);
- }
-
- /**
- * Instancie le Controller
- * @param $controller_name le nom du controller à instancier
- * @exception ControllerNotExistException le controller n'existe pas
- * @exception ControllerNotActionControllerException controller n'est
- * > pas une instance de ActionController
- */
- private function createController ($controller_name) {
- $filename = APP_PATH . self::CONTROLLERS_PATH_NAME . '/'
- . $controller_name . '.php';
-
- if (!class_exists ($controller_name)) {
- throw new Minz_ControllerNotExistException (
- $controller_name,
- Minz_Exception::ERROR
- );
- }
- $this->controller = new $controller_name ($this->router);
-
- if (! ($this->controller instanceof Minz_ActionController)) {
- throw new Minz_ControllerNotActionControllerException (
- $controller_name,
- Minz_Exception::ERROR
- );
- }
- }
-
- /**
- * Lance l'action sur le controller du dispatcher
- * @param $action_name le nom de l'action
- * @exception ActionException si on ne peut pas exécuter l'action sur
- * le controller
- */
- private function launchAction ($action_name) {
- if (!Minz_Request::$reseted) {
- if (!is_callable (array (
- $this->controller,
- $action_name
- ))) {
- throw new Minz_ActionException (
- get_class ($this->controller),
- $action_name,
- Minz_Exception::ERROR
- );
- }
- call_user_func (array (
- $this->controller,
- $action_name
- ));
- }
- }
-}