function preDispatch(Request_Abstract $request, Response_Abstract $response) { $controllerName = strtolower($request->getControllerName()); $exclude = array('index', 'error', 'login'); if (!in_array($controllerName, $exclude)) { $model = LoginModel::getInstance(); if (false == $model->checkLogin()) { $request->setControllerName('Login')->setActionName('index'); } } }
protected function checkAuth(Request_Abstract $request, Response_Abstract $response) { $config = ['allow' => ['api-user-create' => 1, 'api-user-login' => 1, 'api-user-recommend' => 1, 'api-user-info' => 1, 'api-group-recommend' => 1]]; $id = strtolower($request->getModuleName() . '-' . $request->getControllerName() . '-' . $request->getActionName()); if (!isset($config['allow'][$id])) { $user = new User(); $user->id = ApiRequest::getParam('uid'); $token = ApiRequest::getParam('token'); if (!$user->id || TextUtil::isEmptyString($token)) { return new ApiResponse(Code::FAIL_PARAMETER_MISSING, 'uid or token is missing'); } if ($resp = UserManager::getInstance()->getUser($user)) { return $resp; } if ($user->token != $token) { return new ApiResponse(Code::FAIL_USER_TOKEN_EXPIRE, null); } UserManager::getInstance()->setAuthorizedUser($user); } return null; }
function dispatchLoopStartup(Request_Abstract $request, Response_Abstract $response) { $dispatcher = Dispatcher::getInstance(); $controllerName = strtolower($request->getControllerName()); $isApi = 0 === strpos($controllerName, 'api'); $isCli = 0 === strpos($controllerName, 'cli_'); // db \Zend_Db_Table::setDefaultAdapter(AbstractModel::getInstance()->getMultiDb()->getDefaultDb()); // view if ($isApi) { $dispatcher->disableView(); } else { if ($response instanceof Http) { $response->setHeader('Content-Type', 'text/html; charset=UTF-8'); } $dispatcher->setView(SmartyView::getInstance()); } // cli if ($isCli && !$request->isCli()) { $request->setControllerName('Error')->setActionName('error403'); } }
/** * 常量注册 * @param \Yaf\Request_Abstract $request 请求对象 * @param \Yaf\Response_Abstract $response 响应对象 * @return void */ public function preDispatch(Request_Abstract $request, Response_Abstract $response) { // 请求方式定义 define('IS_AJAX', $request->isXmlHttpRequest()); define('IS_GET', $request->isGet()); define('IS_POST', $request->isPost()); define('IS_PUT', $request->isPut()); define('IS_DELETE', $request->getServer('REQUEST_METHOD') == 'DELETE'); // 模块信息常量定义 define('CONTROLLER_NAME', $request->getControllerName()); define('ACTION_NAME', $request->getActionName()); define('MODULE_NAME', $request->getModuleName()); define('MODULE_PATH', sprintf("%smodules%s%s%s", APP_PATH, DS, $request->getModuleName(), DS)); define('COMMON_VIEW_PATH', sprintf('%sviews%s', APP_PATH, DS)); define('MODULE_VIEW_PATH', sprintf("%sviews%s", MODULE_PATH, DS)); // 自定义常量定义 foreach (new Ini(sprintf("%sconsts.ini", CONF_PATH), \YAF\ENVIRON) as $key => $value) { if (is_string($key) && is_string($value)) { define(strtoupper($key), $value); } } }
/** * 构造方法 * * @access public * @param Exception $e * @param \Yaf\Request_Abstract $request */ public function __construct(Exception $e, Request_Abstract $request) { $this->host = @$_SERVER['SERVER_NAME']; $this->uri = @$_SERVER['REQUEST_URI']; $this->query = @$_SERVER['QUERY_STRING']; $this->module = $request->getModuleName(); $this->controller = $request->getControllerName(); $this->action = $request->getActionName(); $this->params = ''; if ($request->isPost()) { $this->params = '$_POST => ' . var_export($request->getPost(), true) . "\r\n"; } if (strtolower($request->getMethod()) == 'cli' || strtolower($request->getMethod()) == 'api') { $this->params .= 'CLI_PARAMS => ' . var_export($request->getParams(), true); } $this->code = $e->getCode(); $this->message = $e->getMessage(); $this->file = $e->getFile(); $this->line = $e->getLine(); $this->exception = get_class($e); $this->datetime = date('Y-m-d H:i:s'); $this->timestamp = time(); }
/** * [logsMessageAction ] * @param Request_Abstract $request [description] * @param Response_Abstract $response [description] * @return [type] [description] */ private function logsMessageAction(Request_Abstract $request, Response_Abstract $response) { $permission = Application::app()->getConfig()->get("log")->get("permission"); if ($permission and $permission == false) { return; } SystemLogger::info(' Controller: ' . $request->getControllerName() . ' Action:' . $request->getActionName() . ' is called'); }