示例#1
0
 public function testGetSetContent()
 {
     $response = new Response();
     $this->assertSame("", $response->getContent());
     $response->setContent("test");
     $this->assertSame("test", $response->getContent());
     $response->setContent("Hello World!");
     $this->assertSame("Hello World!", $response->getContent());
 }
示例#2
0
 /**
  * 响应请求,依次执行添加的中间件逻辑
  *
  * @param \Owl\Http\Request $request
  * @param \Owl\Http\Response $response
  * @return void
  */
 public function execute(\Owl\Http\Request $request, \Owl\Http\Response $response)
 {
     try {
         $this->middleware->execute([$request, $response]);
     } catch (\Exception $exception) {
         $handler = $this->exception_handler ?: function ($exception, $request, $response) {
             $response->withStatus(500)->withBody(new \Owl\Http\StringStream(''));
             // reset response stream
         };
         call_user_func($handler, $exception, $request, $response);
     }
     if (!TEST) {
         $response->end();
     }
     if (function_exists('fastcgi_finish_request')) {
         fastcgi_finish_request();
     }
 }
示例#3
0
 public function __construct($swoole_response)
 {
     $this->swoole_response = $swoole_response;
     parent::__construct();
 }
示例#4
0
文件: Application.php 项目: stcer/owl
 /**
  * 响应请求,依次执行添加的中间件逻辑
  *
  * @param \Owl\Http\Request $request
  * @param \Owl\Http\Response $response
  * @return void
  */
 public function execute(\Owl\Http\Request $request, \Owl\Http\Response $response)
 {
     try {
         $this->middleware->execute([$request, $response]);
     } catch (\Exception $exception) {
         $handler = $this->exception_handler ?: function ($exception, $request, $response) {
             $response->setStatus(500);
             $response->setBody('');
         };
         call_user_func($handler, $exception, $request, $response);
     }
     if (!TEST) {
         $response->end();
     }
 }
示例#5
0
文件: Router.php 项目: stcer/owl
 /**
  * @param \Owl\Http\Request $request
  * @param \Owl\Http\Response $response
  * @return \Owl\Http\Response $response
  *
  * @throws \Owl\Http\Exception 404
  * @throws \Owl\Http\Exception 501
  */
 protected function respond(\Owl\Http\Request $request, \Owl\Http\Response $response)
 {
     $path = $this->getRequestPath($request);
     list($class, $parameters) = $this->byRewrite($path) ?: $this->byPath($path);
     if (!class_exists($class)) {
         throw \Owl\Http\Exception::factory(404);
     }
     $controller = new $class($request, $response);
     $controller->request = $request;
     $controller->response = $response;
     // 如果__beforeExecute()返回了内容就直接返回内容
     if (method_exists($controller, '__beforeExecute') && ($data = call_user_func_array([$controller, '__beforeExecute'], $parameters))) {
         if (!$data instanceof \Owl\Http\Response) {
             $response->setBody($data);
         }
         return $response;
     }
     $method = $request->getMethod();
     if ($method === 'HEAD') {
         $method = 'GET';
     }
     if (!in_array($method, ['HEAD', 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'])) {
         throw \Owl\Http\Exception::factory(501);
     }
     if (!is_callable([$controller, $method])) {
         throw \Owl\Http\Exception::factory(405);
     }
     $data = call_user_func_array([$controller, $method], $parameters);
     if (!$data instanceof \Owl\Http\Response) {
         $response->setBody($data);
     }
     if (method_exists($controller, '__afterExecute')) {
         $controller->__afterExecute($request, $response);
     }
     return $response;
 }
示例#6
0
 public function __construct()
 {
     parent::__construct();
     $this->cookies = \Tests\Mock\Cookie::getInstance();
 }
示例#7
0
文件: Router.php 项目: tempbottle/owl
 /**
  * @param \Owl\Http\Request $request
  * @param \Owl\Http\Response $response
  * @return \Owl\Http\Response $response
  *
  * @throws \Owl\Http\Exception 404
  * @throws \Owl\Http\Exception 501
  */
 protected function respond(\Owl\Http\Request $request, \Owl\Http\Response $response)
 {
     App::log('debug', 'router respond', ['url' => (string) $request->getUri(), 'method' => $request->getMethod()]);
     $path = $this->getRequestPath($request);
     list($class, $parameters) = $this->byRewrite($path) ?: $this->byPath($path);
     App::log('debug', 'router dispatch', ['class' => $class, 'parameters' => $parameters]);
     if (!class_exists($class)) {
         throw \Owl\Http\Exception::factory(404);
     }
     $controller = new $class($request, $response);
     $controller->request = $request;
     $controller->response = $response;
     // 如果__beforeExecute()返回了内容就直接返回内容
     if (method_exists($controller, '__beforeExecute') && ($data = call_user_func_array([$controller, '__beforeExecute'], $parameters))) {
         if ($data instanceof \Psr\Http\Message\StreamInterface) {
             $response->withBody($data);
         } elseif (!$data instanceof \Owl\Http\Response) {
             $response->write($data);
         }
         return $response;
     }
     $method = $request->getMethod();
     if ($method === 'HEAD') {
         $method = 'GET';
     }
     if (!in_array($method, ['HEAD', 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'])) {
         throw \Owl\Http\Exception::factory(501);
     }
     if (!is_callable([$controller, $method])) {
         throw \Owl\Http\Exception::factory(405);
     }
     $data = call_user_func_array([$controller, $method], $parameters);
     if ($data instanceof \Psr\Http\Message\StreamInterface) {
         $response->withBody($data);
     } elseif ($data !== null && !$data instanceof \Owl\Http\Response) {
         $response->write($data);
     }
     if (method_exists($controller, '__afterExecute')) {
         $controller->__afterExecute($request, $response);
     }
     return $response;
 }
示例#8
0
文件: Cookie.php 项目: yeaha/owl-mvc
 public function apply(\Owl\Http\Response $response)
 {
     foreach ($response->getCookies() as $cookie) {
         call_user_func_array([$this, 'set'], $cookie);
     }
 }