Example #1
0
 private static function log($level_text, $message, $namespace, $level = null)
 {
     $uuid = Request::getRequestID();
     if (!empty($namespace)) {
         $namespace = "[{$namespace}]";
     }
     error_log("{$level_text} [{$uuid}] {$message} {$namespace}", $level);
 }
Example #2
0
 /**
  * 分发请求到对象的方法
  */
 public function dispatch($handler, $require_oauth = false, $request = null)
 {
     // 检查handler
     if (!is_string($handler)) {
         throw new PrismException('No handler given to dispatcher');
     }
     // 创建Request和Response
     if (!$request) {
         $request = new Request();
     }
     $response = new Response($request->getRequestID());
     // oauth判断
     if ($require_oauth && !$request->getOauth()) {
         $response->setError('Invalid Request', 'Oauth is required')->send();
     }
     // 使用middlewares
     foreach ($this->middlewares as $middleware) {
         list($class_name, $action_name) = explode('@', $middleware);
         call_user_func(array(new $class_name(), $action_name), $request, $response);
     }
     // 清理不需要的params
     if ($this->routing_key) {
         unset($request->params[$this->routing_key]);
     }
     // 解析对象名和方法名
     list($class_name, $action_name) = explode('@', $handler);
     // 执行方法
     call_user_func(array(new $class_name(), $action_name), $request, $response);
 }