| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 lmb_require('limb/web_app/src/request/lmbRequestDispatcher.interface.php'); 10 lmb_require('limb/filter_chain/src/lmbInterceptingFilter.interface.php'); 11 12 /** 13 * class lmbRequestDispatchingFilter. 14 * 15 * @package web_app 16 * @version $Id: lmbRequestDispatchingFilter.class.php 5945 2007-06-06 08:31:43Z pachanga $ 17 */ 18 class lmbRequestDispatchingFilter implements lmbInterceptingFilter 19 { 20 protected $dispatcher; 21 protected $default_controller_name; 22 23 function __construct($dispatcher, $default_controller_name = 'not_found') 24 { 25 $this->dispatcher = $dispatcher; 26 $this->setDefaultControllerName($default_controller_name); 27 } 28 29 function setDefaultControllerName($default_controller_name) 30 { 31 $this->default_controller_name = $default_controller_name; 32 } 33 34 function run($filter_chain) 35 { 36 $toolkit = lmbToolkit :: instance(); 37 38 $dispatched_params = $this->dispatcher->dispatch($toolkit->getRequest()); 39 40 $controller = $this->_createController($dispatched_params); 41 42 if(isset($dispatched_params['action']) && $controller->actionExists($dispatched_params['action'])) 43 $controller->setCurrentAction($dispatched_params['action']); 44 elseif(!isset($dispatched_params['action'])) 45 $controller->setCurrentAction($controller->getDefaultAction()); 46 else 47 $controller = $this->_createDefaultController(); 48 49 $toolkit->setDispatchedController($controller); 50 51 $this->_putOtherParamsToRequest($dispatched_params); 52 53 $filter_chain->next(); 54 } 55 56 protected function _createController($dispatched_params) 57 { 58 if(!isset($dispatched_params['controller'])) 59 $dispatched_params['controller'] = $this->default_controller_name; 60 61 try 62 { 63 $controller = lmbToolkit :: instance()->createController($dispatched_params['controller']); 64 } 65 catch(lmbException $e) 66 { 67 $controller = lmbToolkit :: instance()->createController($this->default_controller_name); 68 } 69 70 return $controller; 71 } 72 73 protected function _createDefaultController() 74 { 75 $controller = lmbToolkit :: instance()->createController($this->default_controller_name); 76 $controller->setCurrentAction($controller->getDefaultAction()); 77 return $controller; 78 } 79 80 protected function _putOtherParamsToRequest($dispatched_params) 81 { 82 lmbToolkit :: instance()->getRequest()->merge($dispatched_params); 83 } 84 } 85 86 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Dec 1 03:56:46 2008 | Cross-referenced by PHPXref 0.7 |