| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- <?php
 
- /**
 
-  * The Dispatcher class
 
-  */
 
- class LtDispatcher
 
- {
 
- 	public $viewDir;
 
- 	public $viewTplDir;
 
- 	public $viewTplAutoCompile;
 
- 	public $data;
 
- 	public function __construct()
 
- 	{
 
- 	}
 
- 	protected function _dispatch($module, $action, $context = null, $classType = "Action")
 
- 	{
 
- 		$classType = ucfirst($classType);
 
- 		$actionClassName = $module . $action . $classType;
 
- 		if (!class_exists($actionClassName))
 
- 		{
 
- 			//DebugHelper::debug("{$classType}_CLASS_NOT_FOUND", array(strtolower($classType) => $action));
 
- 			trigger_error("{$actionClassName} CLASS NOT FOUND! module={$module} action={$action} classType={$classType}");
 
- 		}
 
- 		else
 
- 		{
 
- 			if (!($context instanceof LtContext))
 
- 			{
 
- 				$newContext = new LtContext;
 
- 			}
 
- 			else
 
- 			{
 
- 				$newContext = clone $context;
 
- 			}
 
- 			$newContext->uri['module'] = $module;
 
- 			$newContext->uri[strtolower($classType)] = $action;
 
- 			$actionInstance = new $actionClassName();
 
- 			$actionInstance->context = $newContext;
 
- 			$actionInstance->viewDir = $this->viewDir;
 
- 			$actionInstance->viewTplDir = $this->viewTplDir; // 模板编译目录
 
- 			$actionInstance->viewTplAutoCompile = $this->viewTplAutoCompile;
 
- 			$actionInstance->executeChain();
 
- 			$this->data = $actionInstance->data;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Disptach the module/action calling.
 
- 	 *
 
- 	 * @param $module string
 
- 	 * @param $action string
 
- 	 * @return void
 
- 	 * @todo allow one action dispatch another action
 
- 	 */
 
- 	public function dispatchAction($module, $action, $context = null)
 
- 	{
 
- 		$this->_dispatch($module, $action, $context);
 
- 	}
 
- 	/**
 
- 	 * Disptach the module/component calling.
 
- 	 *
 
- 	 * @param $module string
 
- 	 * @param $component string
 
- 	 * @param $data mixed
 
- 	 * @return void
 
- 	 */
 
- 	public function dispatchComponent($module, $component, $context = null)
 
- 	{
 
- 		$cloneOfContext = clone $context;
 
- 		$this->_dispatch($module, $component, $cloneOfContext, "Component");
 
- 	}
 
- }
 
 
  |