handler = $handler; $class->request = $request; if ($handler instanceof \Closure) { $class->bind(); } $class->bindParam(); return $class; } /** * @return mixed * 执行函数 */ public function dispatch() { return call_user_func($this->handler, $this->request); } /** * 设置作用域 */ protected function bind() { $this->handler = \Closure::bind($this->handler, new Controller()); } /** * 参数绑定 */ protected function bindParam() { if ($this->handler instanceof \Closure) { return; } $controller = $this->handler[0]; $controller->request = Context::getContext('request'); $controller->headers = $controller->request->headers; $controller->input = $controller->request->params; } }