Controler
[ class tree: Controler ] [ index: Controler ] [ all elements ]

Source for file FrontController.php

Documentation is available at FrontController.php

  1. <?php
  2. /**
  3.  * MVClasses
  4.  *
  5.  * LICENSE
  6.  *
  7.  * "THE BEER-WARE LICENSE" (Revision 42):
  8.  * "Sven Strittmatter" <ausserirdisch@sven-space.de> wrote this file.
  9.  * As long as you retain this notice you can do whatever you want with
  10.  * this stuff. If we meet some day, and you think this stuff is worth it,
  11.  * you can buy me a beer in return.
  12.  *
  13.  * @category    MVClasses
  14.  * @package     Controler
  15.  * @copyright   Copyright (c) 2007 Sven Strittmatter
  16.  */
  17.  
  18. /**
  19.  * @see FilterChain
  20.  */
  21. require_once dirname(__FILE__)."/../Filter/FilterChain.php";
  22. /**
  23.  * Registry
  24.  */
  25. require_once dirname(__FILE__)."/../Registry/Registry.php";
  26.  
  27. /**
  28.  * Enter description here...
  29.  *
  30.  * Longdesc
  31.  *
  32.  * @category    MVClasses
  33.  * @package     Controler
  34.  * @copyright     Copyright (c) 2007 Sven Strittmatter
  35.  * @author    "Sven Strittmatter" <ausserirdisch@sven-space.de>
  36.  * @version     1.0
  37.  * @link        http://www.sven-space.de/code/php/MVClasses
  38.  */
  39. class FrontController {
  40.     /**
  41.      * Haelt die Referenz auf ein ComamndResolver-Objekt.
  42.      *
  43.      * @access    private
  44.      * @var        CommandResolver 
  45.      */
  46.     private $_resolver;
  47.     /**
  48.      * Haelt eine Referenz auf ein FilterChain-Objekt,
  49.      * welches Filter-Objekte beinhalten kann, die vor
  50.      * dem eigentlichen Command ausgef�hrt werden.
  51.      *
  52.      * @access     private
  53.      * @var     FilterChain 
  54.      */
  55.     private $_pre_filter_chain;
  56.     /**
  57.      * Haelt eine Referenz auf ein FilterChain-Objekt,
  58.      * welches Filter-Objekte beinhalten kann, die nach
  59.      * dem eigentlichen Command ausgef�hrt werden.
  60.      *
  61.      * @access     private
  62.      * @var     FilterChain 
  63.      */
  64.     private $_post_filter_chain;
  65.  
  66.     /**
  67.      * Konstruktor
  68.      *
  69.      * @access     public
  70.      * @param    CommandResolver $resolver 
  71.      */
  72.     public function __construct(CommandResolver $resolver{
  73.         $this->_resolver $resolver;
  74.         $this->_pre_filter_chain new FilterChain();
  75.         $this->_post_filter_chain new FilterChain();
  76.     }
  77.  
  78.     /**
  79.      * Handled den Clientrequest. Es mu� dass Request- und
  80.      * Response-Objekt uebergeben werden, an welchen die
  81.      * Filterchains und das geforderte Command durchgefuehrt
  82.      * wird
  83.      *
  84.      * @access     public
  85.      * @param    Request $req 
  86.      * @param    Response $res 
  87.      */
  88.     public function handleRequest(Request $reqResponse $res{
  89.         $reg Registry::getInstance();
  90.         $reg->setRequest($req);
  91.         $reg->setResponse($res);
  92.         /*
  93.          * Alle Filter in der FilterChain $_pre_filter_chain
  94.          * werden angewendet.
  95.          */
  96.         $this->_pre_filter_chain->processFilters($req$res);
  97.         /*
  98.          * Das vom CommandResolver zurueckgegebene Command
  99.          * wird ausgefuehrt.
  100.          */
  101.         $command $this->_resolver->getCommand($req);
  102.         $command->execute($req$res);
  103.         /*
  104.          * Alle Filter in der FilterChain $_post_filter_chain
  105.          * werden angewendet.
  106.          */
  107.         $this->_post_filter_chain->processFilters($req$res);
  108.         /*
  109.          * Die Ausgabe wird an den Client gesendet.
  110.          */
  111.         $res->flush();
  112.     }
  113.  
  114.     /**
  115.      * Fuegt einen Filterobjekt der FilterChain hinzu, welches
  116.      * vor dem eigentlich Command ausgefuehrt wird.
  117.      *
  118.      * @access     public
  119.      * @param     Filter $f 
  120.      */
  121.     public function addPrefilter(Filter $f{
  122.         $this->_pre_filter_chain->addFilter($f);
  123.     }
  124.  
  125.     /**
  126.      * Fuegt einen Filterobjekt der FilterChain hinzu, welches
  127.      * nach dem eigentlich Command ausgefuehrt wird.
  128.      *
  129.      * @access     public
  130.      * @param     Filter $f 
  131.      */
  132.     public function addPostFilter(Filter $f{
  133.         $this->_post_filter_chain->addFilter($f);
  134.     }
  135. }

Documentation generated on Sun, 02 Aug 2009 17:14:57 +0200 by phpDocumentor 1.4.2