| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | 
							- <?php
 
- /**
 
-  *
 
-  * Cube Framework $Id$ f04vcN3k+F0v125Z/hSDEpJ6TqKt5ZBBOTaIsNJtnV0=
 
-  *
 
-  * @link        http://codecu.be/framework
 
-  * @copyright   Copyright (c) 2014 CodeCube SRL
 
-  * @license     http://codecu.be/framework/license Commercial License
 
-  *
 
-  * @version     1.0
 
-  */
 
- /**
 
-  * controller plugin broker class
 
-  */
 
- namespace Cube\Controller\Plugin;
 
- use Cube\Controller\Request\AbstractRequest,
 
-     Cube\Controller\Response\AbstractResponse;
 
- class Broker extends AbstractPlugin
 
- {
 
-     /**
 
-      *
 
-      * array of objects of type \Cube\Controller\PluginAbstract
 
-      *
 
-      * @var array
 
-      */
 
-     protected $_plugins = array();
 
-     /**
 
-      *
 
-      * add a new plugin to the plugins stack
 
-      *
 
-      * @param \Cube\Controller\Plugin\AbstractPlugin $plugin
 
-      *
 
-      * @return \Cube\Controller\Plugin\Broker
 
-      * @throws \OverflowException
 
-      */
 
-     public function registerPlugin(AbstractPlugin $plugin)
 
-     {
 
-         if ($this->isRegisteredPlugin($plugin) === true) {
 
-             throw new \OverflowException("The controller plugin is already registered");
 
-         }
 
-         else {
 
-             $this->_plugins[get_class($plugin)] = $plugin;
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * check if the plugin has already been registered
 
-      *
 
-      * @param string|AbstractPlugin $plugin
 
-      *
 
-      * @return bool
 
-      */
 
-     public function isRegisteredPlugin($plugin)
 
-     {
 
-         if ($plugin instanceof AbstractPlugin && array_search($plugin, $this->_plugins, true) !== false) {
 
-             return true;
 
-         }
 
-         else if (is_string($plugin) && array_key_exists($plugin, $this->_plugins)) {
 
-             return true;
 
-         }
 
-         return false;
 
-     }
 
-     /**
 
-      *
 
-      * set the request object to the broker and all registered plugins
 
-      *
 
-      * @param \Cube\Controller\Request\AbstractRequest $request
 
-      *
 
-      * @return \Cube\Controller\Plugin\Broker
 
-      */
 
-     public function setRequest(AbstractRequest $request)
 
-     {
 
-         $this->_request = $request;
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->setRequest($request);
 
-             }
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * set the response object to the broker and all registered plugins
 
-      *
 
-      * @param \Cube\Controller\Response\AbstractResponse $response
 
-      *
 
-      * @return \Cube\Controller\Plugin\Broker
 
-      */
 
-     public function setResponse(AbstractResponse $response)
 
-     {
 
-         $this->_response = $response;
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->setResponse($response);
 
-             }
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * this method will be run prior to routing the request
 
-      */
 
-     public function preRoute()
 
-     {
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->preRoute();
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      *
 
-      * this method will be run after the request has been routed
 
-      */
 
-     public function postRoute()
 
-     {
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->postRoute();
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      *
 
-      * this method will be run before starting the dispatch loop
 
-      */
 
-     public function preDispatcher()
 
-     {
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->preDispatcher();
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      *
 
-      * this method will be run after the dispatch loop has ended
 
-      */
 
-     public function postDispatcher()
 
-     {
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->postDispatcher();
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      *
 
-      * this method will be run each time an action is dispatched
 
-      */
 
-     public function preDispatch()
 
-     {
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->preDispatch();
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      *
 
-      * this method will be run after an action has been dispatched
 
-      */
 
-     public function postDispatch()
 
-     {
 
-         foreach ($this->_plugins as $plugin) {
 
-             if ($plugin instanceof AbstractPlugin) {
 
-                 $plugin->postDispatch();
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |