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); }
/** * @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; } } }
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); } }
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'); } }
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'); } } }
/** * 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(); }
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); } } }
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"); } } } }
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]); } } }
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; } }
/** * 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; }
/** * 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; }
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); }
/** * 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; }
/** * 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; }
/** * 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; }
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); } }
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); }
/** * 执行过滤器 * * @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}(); } }
/** * 是否为POST提交 * * @return boolean */ protected function isPost() { return $this->_request->isPost(); }
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)); } }
/** * 是否为AJAX提交 * * @return boolean */ protected function isAjax() { return $this->_request->isXmlHttpRequest(); }
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; }
/** * 路由结束事件 * * @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); } }