public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) { if (strtoupper($request->getModuleName()) == 'PLATFORM') { $currentController = $request->getControllerName(); $routedController = 'Platform' . $currentController; $request->setControllerName($routedController); } }
/** * Class constructor * * The request and response objects should be registered with the * controller, as should be any additional optional arguments; these will be * available via {@link getRequest()}, {@link getResponse()}, and * {@link getInvokeArgs()}, respectively. * * @param Yaf_Request_Abstract $request * @param Yaf_Response_Abstract $response * @param Yaf_View_Interface $view * @param array $invokeArgs * Any additional invocation arguments * * @return void */ public function __construct(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response, Yaf_View_Interface $view, array $invokeArgs = array()) { $this->_request = $request; $this->_response = $response; $this->_view = $view; $this->_invokeArgs = $invokeArgs; $this->_module = $request->getModuleName(); $this->_name = get_class($this); }
private function _fixDefault(Yaf_Request_Abstract $request) { $module = $request->getModuleName(); if (empty($module) || !is_string($module)) { $request->setModuleName($this->_default_module); } else { $request->setModuleName(ucfirst($module)); } $controller = $request->getControllerName(); if (empty($controller) || !is_string($controller)) { $request->setControllerName($this->_default_controller); } else { $request->setControllerName($this->_formatName($controller)); } $action = $request->getActionName(); if (empty($action) || !is_string($action)) { $request->setActionName($this->_default_action); } else { $request->setActionName(strtolower($action)); } }
/** * 执行过滤器 * * @param Yaf_Request_Abstract $request */ public function executeFilterMethod(Yaf_Request_Abstract $request) { $routeName = strtolower($request->getModuleName()) . '_' . strtolower($request->getControllerName()) . '_' . strtolower($request->getActionName()); if (array_key_exists($routeName, $this->filterRegistry)) { self::$requestObj = $request; $registry = $this->filterRegistry[$routeName]; $FilterClass = $registry[1]; $FilterMethod = $registry[0]; $FilterObj = new $FilterClass(); $FilterObj->{$FilterMethod}(); } }
private function _fixDefault(Yaf_Request_Abstract $request) { $module = $request->getModuleName(); if (empty($module) || !is_string($module)) { $request->setModuleName(Yaf_G::YAF_ROUTER_DEFAULT_MODULE); } else { $request->setModuleName(ucfirst($module)); } $controller = $request->getControllerName(); if (empty($controller) || !is_string($controller)) { $request->setControllerName(Yaf_G::YAF_ROUTER_DEFAULT_CONTROLLER); } else { $request->setControllerName($this->_formatName($controller)); } $action = $request->getActionName(); if (empty($action) || !is_string($action)) { $request->setActionName(Yaf_G::YAF_ROUTER_DEFAULT_ACTION); } else { $request->setActionName(strtolower($action)); } }
public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) { //将下划线请求的控制器名称重写为大小写 $controller = $request->getControllerName(); if (false !== ($pos = strpos($controller, '_'))) { $request->setControllerName(substr($controller, 0, $pos) . substr($controller, $pos + 1)); } //在模块名称合法的情况下,对方法名称做处理 $moduleName = $request->getModuleName(); if (in_array($moduleName, Yaf_Application::app()->getModules())) { //记录将访问的接口名称 Yaf_Registry::set('REQUEST_API_NAME', strtolower($moduleName . '/' . $controller)); //action中存在".",不存在则默认返回Json数据并且指向index动作 $action = $request->getActionName(); if (false !== strpos($action, '.')) { //source && format $param = explode('.', $action); if (count($param) < 2 || empty($param[1])) { die('request error.'); } //记录需要格式化的类型 Yaf_Registry::set('REQUEST_FORMAT_TYPE', $param[1]); switch ($param[1]) { case 'json': header("Content-type:application/json;charset=utf-8"); $request->setActionName('index'); break; case 'html': header("Content-type:text/html;charset=utf-8"); $request->setActionName($param[0]); break; case 'zip': header('Content-Type:application/zip;charset=utf-8'); $request->setActionName('index'); break; } $source = $param[0]; } else { //header("Content-type:application/json;charset=utf-8"); //默认返回json数据 //$request->setActionName($action); //默认全部指向index方法 //Yaf_Registry::set('REQUEST_FORMAT_TYPE', $param[1]); $source = $action; } self::_analySource($source); } }