public function _initMemorySet(Yaf\Dispatcher $dispatcher) { //初始化预定于变量 \Core\KEY::set('_REQUEST', NULL); \Core\KEY::set('_IS_AUTHORIZED', FALSE); \Core\KEY::set('_APP', FALSE); \Core\KEY::set('_API', FALSE); \Core\KEY::set('_RESULT', NULL); }
public function routerShutdown(\Yaf\Request_Abstract $request, \Yaf\Response_Abstract $response) { //PRETREATMENT REQUEST START --> if ($request->controller == 'Api') { \Core\KEY::set('_REQUEST', \Process\RequestModel::get($request->method, $request->getParams())); \Core\KEY::set('_IS_AUTHORIZED', FALSE); } //PRETREATMENT REQUEST END <-- }
public function routerShutdown(\Yaf\Request_Abstract $request, \Yaf\Response_Abstract $response) { //PRETREATMENT REQUEST START --> if ($request->controller == 'Api' && \Core\KEY::get('_IS_AUTHORIZED')) { $_REQUEST = \Core\KEY::get('_REQUEST'); //API ROUTER START --> //路由到对应api from api_config_devel.ini $_API = \Process\ApiModel::get($_REQUEST['api']['service'], $_REQUEST['api']['method'], $_REQUEST['method']); if ($_API == FALSE || empty($_API)) { throw new \Exception('API_ROUTE_ERROR'); } //API ROUTER END <-- \Core\KEY::set('_API', $_API); } //PRETREATMENT REQUEST END <-- }
public function routerShutdown(\Yaf\Request_Abstract $request, \Yaf\Response_Abstract $response) { if ($request->controller == 'Api' && \Core\KEY::get('_IS_AUTHORIZED')) { $_REQUEST = \Core\KEY::get('_REQUEST'); $_APP = \Core\KEY::get('_APP'); //AUTHORIZE START --> //授权, with service, method, token if ($_APP != FALSE && \Process\AuthorizeModel::authorize($_REQUEST['api']['service'], $_REQUEST['api']['method'], $_APP['role'])) { //授权成功 \Core\KEY::set('_IS_AUTHORIZED', TRUE); } else { throw new \Exception('PERMISSION_DENIED'); } //AUTHORIZE END <-- } }
public function routerShutdown(\Yaf\Request_Abstract $request, \Yaf\Response_Abstract $response) { if ($request->controller == 'Api') { $_REQUEST = \Core\KEY::get('_REQUEST'); \Core\KEY::set('_IS_AUTHORIZED', FALSE); //AUTHENTICATE START --> //应用认证,appkey,appsecret,ip,count from authorize_config.ini $_APP = \Process\AuthorizeModel::authenticate($_REQUEST['access-token'], $_REQUEST['client-ip']); if (empty($_APP) || $_APP == FALSE) { throw new \Exception('AUTHENTICATE_FAILURE'); } else { \Core\KEY::set('_IS_AUTHORIZED', TRUE); \Core\KEY::set('_APP', $_APP); } //AUTHENTICATE END <-- } }
public function indexAction($_service = NULL, $_method = NULL, $_resource = NULL) { if (\Core\KEY::get('_IS_AUTHORIZED')) { $_REQUEST = \Core\KEY::get('_REQUEST'); $_APP = \Core\KEY::get('_APP'); $_API = \Core\KEY::get('_API'); $_RESULT = FALSE; $_RETURN_PACKEGE = NULL; //API PROCESS START --> $_RESULT = \Process\ApiModel::process($_API, $_REQUEST); //API PROCESS END <-- //RESULT PACKAGE START --> //接口返回内容封装 \Core\KEY::set('_RESPONSE', \Process\ApiModel::package($_RESULT)); //RESULT PACKAGE END <-- } return FALSE; }
public function key() { $a = null; $start = $this->get_microtime(); for ($i = 0; $i < 1000; $i++) { \Core\KEY::set('test', $i, KEY_STATIC); $a = \Core\KEY::get('test', KEY_STATIC); } $end = $this->get_microtime(); var_dump($end - $start); $start = $this->get_microtime(); for ($i = 0; $i < 1000; $i++) { \Yaf\Registry::set('test', $i); $a = \Yaf\Registry::get('test'); } $end = $this->get_microtime(); var_dump(microtime()); var_dump($end - $start); return FALSE; }
public function dispatchLoopShutdown(\Yaf\Request_Abstract $request, \Yaf\Response_Abstract $response) { if ($request->controller == 'Api') { $_REQUEST = \Core\KEY::get('_REQUEST'); $_RESPONSE = \Core\KEY::get('_RESPONSE'); $_ECHO = ''; switch ($_REQUEST['content-type']) { /*case TYPE_JSONP: $_result = ($_callback == NULL ? '' : $_callback) .'('.json_encode($_object, JSON_PRETTY_PRINT + JSON_UNESCAPED_UNICODE).');'; break;*/ case TYPE_MSGPACK: $_ECHO = msgpack_pack($_RESPONSE); break; case TYPE_JSON: $_ECHO = json_encode($_RESPONSE); break; default: break; } \Core\RESPONSE::initialize($response, RESPONSE_TYPE_YAF); \Core\RESPONSE::set($_ECHO, RESPONSE_TYPE_BODY); \Core\RESPONSE::respond(); } }