Browse Source

Delete Dispatcher.php

Alexandre Alapetite 12 years ago
parent
commit
d0c855ffc2
1 changed files with 0 additions and 138 deletions
  1. 0 138
      lib/minz/Dispatcher.php

+ 0 - 138
lib/minz/Dispatcher.php

@@ -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
-			));
-		}
-	}
-}