Example #1
0
 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);
     }
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 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));
     }
 }
Example #4
0
 /**
  * 执行过滤器
  *
  * @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}();
     }
 }
Example #5
0
 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);
     }
 }