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()); }
/** * 响应请求,依次执行添加的中间件逻辑 * * @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(); } }
public function __construct($swoole_response) { $this->swoole_response = $swoole_response; parent::__construct(); }
/** * 响应请求,依次执行添加的中间件逻辑 * * @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(); } }
/** * @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; }
public function __construct() { parent::__construct(); $this->cookies = \Tests\Mock\Cookie::getInstance(); }
/** * @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; }
public function apply(\Owl\Http\Response $response) { foreach ($response->getCookies() as $cookie) { call_user_func_array([$this, 'set'], $cookie); } }