Example #1
0
 public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     //pr($request);
     $modules = Yaf_Application::app()->getModules();
     $uri = $request->getRequestUri();
     $uriInfo = explode('/', $uri);
     $module = ucfirst($uriInfo[1]);
     $controller = $uriInfo[2];
     $action = $uriInfo[3];
     if (!in_array($module, $modules)) {
         $module = 'index';
         $controller = $uriInfo[1];
         $action = $uriInfo[2];
     }
     $request->setModuleName(ucfirst($module));
     if (!$controller) {
         $controller = 'index';
     }
     $request->setControllerName(ucfirst($controller));
     if (!$action) {
         $action = 'index';
     }
     $request->setActionName($action);
     //pr($request);
 }
Example #2
0
 /**
  * @param Yaf_Request_Abstract|Yaf_Request_Http $request
  * @param Yaf_Response_Abstract $response
  */
 public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $controllerName = strtolower($request->getControllerName());
     $actionAliasName = strtolower($request->get('action_alias_name'));
     self::assign('controllerName', $controllerName);
     self::assign('actionName', $actionAliasName);
     $titles = [['controller' => 'job', 'action' => 'list', 'title' => '职位管理']];
     foreach ($titles as $title) {
         $changeTitle = true;
         if (isset($title['controller'])) {
             if ($title['controller'] != $controllerName) {
                 $changeTitle = false;
             }
         }
         if (isset($title['action'])) {
             if ($title['action'] != $actionAliasName) {
                 $changeTitle = false;
             }
         }
         if ($changeTitle) {
             self::assign('title', $title['title']);
             break;
         }
     }
 }
Example #3
0
 public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $aADUSQL = Db_Orm::getADUSQL();
     if (!empty($aADUSQL)) {
         $aLog = array('sIP' => $request->getClientIP(), 'sParam' => json_encode($request->getParams()), 'sSQL' => join("\n", $aADUSQL), 'sUserName' => Model_ActionLog::getUser(), 'iType' => Model_ActionLog::getType(), 'sUrl' => Util_Uri::getCurrUrl());
         Model_ActionLog::addData($aLog);
     }
 }
Example #4
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);
     }
 }
 public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $start = Yaf_Registry::get('benchmark_start');
     Yaf_Registry::del('benchmark_start');
     $time = microtime(true) - (double) $start;
     if ($time > 1) {
         Log::out('benchmark', 'I', $request->getRequestUri() . ':' . $time . ':' . memory_get_usage(true) / 1024 . 'kb');
     }
 }
Example #6
0
 function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $controllerName = strtolower($request->getControllerName());
     if (0 === strpos($controllerName, 'doc')) {
         $model = LoginModel::getInstance();
         if (false == $model->checkLogin()) {
             $request->setControllerName('Login')->setActionName('index');
         }
     }
 }
Example #7
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);
     $this->init();
 }
Example #8
0
 public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $actionName = $request->getActionName();
     $curMethod = strtolower($request->getMethod());
     if (in_array($curMethod, $this->allowMethods)) {
         $request->setActionName($actionName . ucfirst($curMethod));
     } else {
         if ($this->denyRedirectURL) {
             $response->setRedirect($this->denyRedirectURL);
         } else {
             die($this->denyMsg);
         }
     }
 }
Example #9
0
 public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     //print_r(Yaf_Application::app()->getModules());
     if (Yaf_Session::getInstance()->get("username")) {
         //echo "亲爱的用户 ".Yaf_Session::getInstance()->get("username")." 你好<br>";
     } else {
         if ($request->getControllerName() == "User") {
         } else {
             if ($request->getControllerName() == "Admin") {
             } else {
                 //header("Location:/user");
             }
         }
     }
 }
Example #10
0
 public function userAccessRedirect(Yaf_Request_Abstract $request)
 {
     $controller = strtolower($request->getControllerName());
     $actionAliasName = strtolower($request->get('action_alias_name'));
     if (!UserRegisterModel::singleton()->hasUserRegistered($this->getObjectId()) && ($controller != 'login' && $actionAliasName != 'unregistered')) {
         $this->headerLocation('http://zhaopin.renmai.cn/login/unregistered');
     }
     $status = self::getUserStatus();
     $jumpUrlMap = array(0 => '/auth/choose', 1 => '/auth/result', 2 => '/resume/search', 3 => '/auth/result');
     if (in_array($status, array(self::STATUS_UNAUDITED, self::STATUS_AUDITING, self::STATUS_UNQUALIFIED))) {
         if ($controller != 'auth' && !(isset(self::$userActionMap[$controller]) && in_array($actionAliasName, self::$userActionMap[$controller]))) {
             $this->headerLocation('http://zhaopin.renmai.cn' . $jumpUrlMap[$status]);
         }
     }
 }
Example #11
0
 public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $session = Yaf_Session::getInstance();
     $uid = $session->offsetGet('uid');
     $url = $request->getRequestUri();
     $controller_name = strtolower($request->getControllerName());
     $action_name = strtolower($request->getActionName());
     $request_type = $request->getParam('request_type', 'page');
     //        print_R($action_name);
     if (empty($uid)) {
         if (stripos($url, 'login') === false) {
             $this->headerLocation('/index/login');
         }
     } else {
         return true;
     }
 }
Example #12
0
 /**
  * Matches a user submitted path with a previously defined route.
  * Assigns and returns an array of defaults on a successful match.
  *
  * @param  string $path Path used to match against this routing map
  *
  * @return array|false  An array of assigned values or a false on a mismatch
  */
 public function route(Yaf_Request_Abstract $request)
 {
     $requestUri = $request->getRequestUri();
     $baseuri = $request->getBaseUri();
     if ($requestUri != '' && $baseuri != '' && stripos($requestUri, $baseuri) !== false) {
         $path = substr($requestUri, strlen($baseuri));
     } else {
         $path = $requestUri;
     }
     $path = trim(urldecode($path), Yaf_Router::URI_DELIMITER);
     $values = $this->_match($path);
     if ($values == null) {
         return false;
     }
     if (isset($this->_default['module'])) {
         $request->setModuleName($this->_default['module']);
     }
     if (isset($this->_default['controller'])) {
         $request->setControllerName($this->_default['controller']);
     }
     if (isset($this->_default['action'])) {
         $request->setActionName($this->_default['action']);
     }
     $request->setParam($values);
     return true;
 }
Example #13
0
 /**
  * Matches a user submitted path with a previously defined route.
  * Assigns and returns an array of defaults on a successful match.
  *
  * @param  string $path Path used to match against this routing map
  *
  * @return array|false  An array of assigned values or a false on a mismatch
  */
 public function route(Yaf_Request_Abstract $request)
 {
     $requestUri = $request->getRequestUri();
     $baseuri = $request->getBaseUri();
     if ($requestUri != '' && $baseuri != '' && stripos($requestUri, $baseuri) !== false) {
         $path = substr($requestUri, strlen($baseuri));
     } else {
         $path = $requestUri;
     }
     $path = urldecode($path);
     $res = preg_match($this->_route, $path, $values);
     if ($res === 0) {
         return false;
     }
     $values = $this->_getMappedValues($values);
     if (isset($this->_default['module'])) {
         $request->setModuleName($this->_default['module']);
     }
     if (isset($this->_default['controller'])) {
         $request->setControllerName($this->_default['controller']);
     }
     if (isset($this->_default['action'])) {
         $request->setActionName($this->_default['action']);
     }
     $request->setParam($values);
     return true;
 }
Example #14
0
 public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $modules = Yaf_Application::app()->getModules();
     $uri = $request->getRequestUri();
     $uriInfo = explode('/', $uri);
     $module = ucfirst($uriInfo[1]);
     if (!in_array($module, $modules)) {
         $module = 'index';
         // 由于 YAF 源码只不支持大小写混写的控制器和 Action名, 这里来满足
         if ($request->controller) {
             if (strtoupper($request->controller) == strtoupper($uriInfo[1])) {
                 $controller = ucfirst($uriInfo[1]);
                 $request->setControllerName($controller);
             }
         }
         if ($request->action) {
             if (strtoupper($request->action) == strtoupper($uriInfo[2])) {
                 $request->setActionName($uriInfo[2]);
             }
         }
     } else {
         $request->setModuleName($module);
         $request->setControllerName(ucfirst($uriInfo[2]));
         $action = $uriInfo[3];
         if (!$action) {
             $action = 'index';
         }
         $request->setActionName($action);
     }
     //pr($request);
 }
Example #15
0
 /**
  * Find a matching route to the current Request and inject
  * returning values to the Request object.
  *
  * @return bool if there is a valid route
  */
 public function route(Yaf_Request_Abstract $request)
 {
     $requestUri = $request->getRequestUri();
     //去掉根目录
     $baseuri = $request->getBaseUri();
     if ($requestUri != '' && $baseuri != '' && stripos($requestUri, $baseuri) === 0) {
         $path = substr($requestUri, strlen($baseuri));
     } else {
         $path = $requestUri;
     }
     //支持rewrite路由
     $matches = null;
     $rewrites = Yaf_G::getConf('rewrite', 'route');
     $rest = explode('?', $path, 2);
     $path = $rest[0];
     if (!empty($rewrites)) {
         foreach ($rewrites as $k => $v) {
             $matches = null;
             if (preg_match($k, $path, $matches)) {
                 $path = preg_replace($k, $v, $path);
                 break;
             }
         }
     }
     if (!empty($rest[1])) {
         $path .= '?' . $rest[1];
     }
     //取得Route
     $aRoute = Yaf_G::getRoute($path);
     $request->setModuleName($aRoute['module']);
     $request->setControllerName($aRoute['controller']);
     $request->setActionName($aRoute['action']);
     //解析参数
     parse_str($aRoute['query'], $params);
     /*
     $params = array();
     $rest = $aRoute['query'];
     $numSegs = count($rest);
     if ($numSegs > 0) {
         for ($i = 0; $i < $numSegs; $i = $i + 2) {
             $key = $rest[$i];
             $val = isset($rest[$i + 1]) ? $rest[$i + 1]: null;
             $params[$key] = (isset($params[$key]) ? (array_merge((array) $params[$key], array(
                 $val
             ))) : $val);
         }
     }
     */
     //rewrite参数解析
     if (!empty($matches)) {
         foreach ($matches as $k => $v) {
             if (!is_numeric($k)) {
                 $params[$k] = $v;
             }
         }
     }
     $request->setParam($params);
     return true;
 }
Example #16
0
 /**
  * Processes a request and sets its controller and action.  If
  * no route was possible, default route is set.
  *
  * @param  Yaf_Request_Abstract
  *
  * @return Yaf_Request_Abstract|boolean
  */
 public function route(Yaf_Request_Abstract $request)
 {
     $requestUri = $request->getRequestUri();
     $baseuri = $request->getBaseUri();
     if ($requestUri != '' && $baseuri != '' && stripos($requestUri, $baseuri) === 0) {
         $path = substr($requestUri, strlen($baseuri));
     } else {
         $path = $requestUri;
     }
     $path = trim(urldecode($path), Yaf_Router::URI_DELIMITER);
     $rest = '';
     if (is_string($this->_delimiter) && $this->_delimiter != '') {
         if (($queryStringPos = strpos($path, $this->_delimiter)) !== false) {
             $rest = substr($path, $queryStringPos + strlen($this->_delimiter), strlen($path) - 1);
             $path = substr($path, 0, $queryStringPos);
         }
     }
     $route = '';
     if ($path != '' && $path != '/') {
         $route = str_replace(Yaf_Router::URI_DELIMITER, '_', trim($path, Yaf_Router::URI_DELIMITER));
     }
     if ($route != '') {
         if ($this->_ctlPrefer == true) {
             $request->setControllerName($route);
         } else {
             $request->setActionName($route);
         }
     }
     $params = array();
     if ($rest != null && trim($rest) != '') {
         $path = explode(Yaf_Router::URI_DELIMITER, trim($rest, Yaf_Router::URI_DELIMITER));
         if (($numSegs = count($path)) != 0) {
             for ($i = 0; $i < $numSegs; $i = $i + 2) {
                 $key = urldecode($path[$i]);
                 $val = isset($path[$i + 1]) ? urldecode($path[$i + 1]) : null;
                 $params[$key] = isset($params[$key]) ? array_merge((array) $params[$key], array($val)) : $val;
             }
         }
         $request->setParam($params);
     }
     return true;
 }
Example #17
0
 /**
  * Processes a request and sets its controller and action.  If
  * no route was possible, default route is set.
  *
  * @param  Yaf_Request_Abstract
  * @return Yaf_Request_Abstract|boolean
  */
 public function route(Yaf_Request_Abstract $request)
 {
     $module = isset($_GET[$this->_module]) ? $_GET[$this->_module] : null;
     $controller = isset($_GET[$this->_controller]) ? $_GET[$this->_controller] : null;
     $action = isset($_GET[$this->_action]) ? $_GET[$this->_action] : null;
     if ($module == null && $controller == null && $action == null) {
         return false;
     } else {
         if ($module != null) {
             $request->setModuleName($module);
         }
         if ($controller != null) {
             $request->setControllerName($controller);
         }
         if ($action != null) {
             $request->setActionName($action);
         }
     }
     return true;
 }
Example #18
0
 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);
     }
 }
Example #19
0
 public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     $aliasName = $request->getActionName();
     $name = str_replace('-', '', $aliasName);
     $request->setActionName($name);
     $aliasController = $request->getControllerName();
     //        $name = str_replace('-','',$aliasController);
     $list = explode('-', $aliasController);
     if ($list && count($list)) {
         foreach ($list as &$item) {
             $item = ucfirst($item);
         }
         $request->setControllerName(implode('', $list));
     }
     $request->setParam('action_alias_name', $aliasName);
 }
Example #20
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 #21
0
 /**
  * 是否为POST提交
  * 
  * @return boolean
  */
 protected function isPost()
 {
     return $this->_request->isPost();
 }
Example #22
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));
     }
 }
Example #23
0
 /**
  * 是否为AJAX提交
  * 
  * @return boolean
  */
 protected function isAjax()
 {
     return $this->_request->isXmlHttpRequest();
 }
Example #24
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));
     }
 }
 /**
  * Processes a request and sets its controller and action based on a
  * supervar value.
  *
  * @param  Yaf_Request_Abstract
  *
  * @return Yaf_Request_Abstract|boolean
  */
 public function route(Yaf_Request_Abstract $request)
 {
     $requestUri = $request->getQuery($this->_varName);
     if ($requestUri == null || $requestUri == '') {
         return false;
     }
     $module = null;
     $controller = null;
     $action = null;
     $rest = null;
     $path = trim($requestUri, Yaf_Router::URI_DELIMITER);
     if ($path != '' && $path != '/') {
         $path = explode(Yaf_Router::URI_DELIMITER, $path);
         if (Yaf_Application::isModuleName($path[0])) {
             $module = $path[0];
             array_shift($path);
         }
         if (count($path) && !empty($path[0])) {
             $controller = $path[0];
             array_shift($path);
         }
         if (count($path) && !empty($path[0])) {
             $action = $path[0];
             array_shift($path);
         }
         $rest = implode(Yaf_Router::URI_DELIMITER, $path);
         $actionPrefer = Yaf_G::iniGet('yaf.action_prefer');
         if ($module == null && $controller == null && $action == null) {
             if ($actionPrefer == true) {
                 $action = $rest;
             } else {
                 $controller = $rest;
             }
             $rest = null;
         } elseif ($module == null && $action == null && $rest == null) {
             if ($actionPrefer == true) {
                 $action = $controller;
                 $controller = null;
             }
         } elseif ($controller == null && $action == null && $rest != null) {
             $controller = $module;
             $action = $rest;
             $module = null;
             $rest = null;
         } elseif ($action == null && $rest == null) {
             $action = $controller;
             $controller = $module;
             $module = null;
         } elseif ($controller == null && $action == null) {
             $controller = $module;
             $action = $rest;
             $module = null;
             $rest = null;
         } elseif ($action == null) {
             $action = $rest;
             $rest = null;
         }
         if ($module != null) {
             $request->setModuleName($module);
         }
         if ($controller != null) {
             $request->setControllerName($controller);
         }
         if ($action != null) {
             $request->setActionName($action);
         }
         $params = array();
         if ($rest != null && trim($rest) != '') {
             $path = explode(Yaf_Router::URI_DELIMITER, $rest);
             if (($numSegs = count($path)) != 0) {
                 for ($i = 0; $i < $numSegs; $i = $i + 2) {
                     $key = urldecode($path[$i]);
                     $val = isset($path[$i + 1]) ? urldecode($path[$i + 1]) : null;
                     $params[$key] = isset($params[$key]) ? array_merge((array) $params[$key], array($val)) : $val;
                 }
             }
             $request->setParam($params);
         }
     }
     return true;
 }
Example #26
0
 /**
  * 路由结束事件
  *
  * @author         mrmsl <*****@*****.**>
  * @date           2012-12-25 09:33:26
  * @lastmodify     2013-02-17 11:43:31 by mrmsl
  *
  * @param object $request  Yaf_Request_Http实例
  * @param object $response Yaf_Response_Http实例
  *
  * @return void 无返回值
  */
 public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
 {
     define('CONTROLLER_NAME', $request->getControllerName());
     //控制器
     define('ACTION_NAME', $request->getActionName());
     //操作方法
     define('REQUEST_METHOD', $request->getMethod());
     //请求方法
     define('TEMPLATE_FILE', THEME_PATH . strtolower(CONTROLLER_NAME) . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
     //模板文件
     define('REFERER_PAGER', empty($_SERVER['HTTP_REFERER']) ? '' : urldecode($_SERVER['HTTP_REFERER']));
     //来路页面
     //请求uri
     if (isset($_SERVER['REQUEST_URI'])) {
         define('REQUEST_URI', urldecode($_SERVER['REQUEST_URI']));
     } else {
         $querystring = $request->getQuery();
         /**
          * @ignore
          */
         define('REQUEST_URI', urldecode($request->getRequestUri() . ($querystring ? '?' . http_build_query($querystring) : '')));
     }
     $this->_denyControllers();
     //禁止直接访问Error,Base控制器
     if ($languages = F(MODULE_NAME . DS . LANG . DS . strtolower(CONTROLLER_NAME), '', LANG_PATH)) {
         //当前控制器语言包
         L($languages);
     }
 }