/** * * @param Request $request * @param Response $response */ public function render(Request $request, Response $response) { if ($this->environment->getName() !== 'test') { header('HTTP/1.1 ' . $response->getStatusCode() . ' ' . $response->getStatusMessage()); foreach ($response->getHeaders() as $name => $value) { header($name . ': ' . $value); } } echo (string) $response->getContent(); }
/** * {@inheritdoc} */ public function execute(\Exception $exception) { error_log($exception->getMessage() . " " . $exception->getFile() . "(" . $exception->getLine() . ")"); if (!$this->environment->isDebug()) { return; } $presenter = new HTTPErrorPresenter($this->environment); $response = new Response(); $response->setContent($exception); $request = new EmptyRequest('', null); $presenter->render($request, $response); }
/** * * @param Response $response */ private function setHeaders(Response $response) { if ($this->environment->getName() === 'test') { return; } header('HTTP/1.1 ' . $response->getStatusCode() . ' ' . $response->getStatusMessage()); header('Content-type: application/json'); foreach ($response->getHeaders() as $name => $value) { if ($name != 'content-type') { header($name . ': ' . $value); } } }
/** * @param Request $request * @param Response $response */ public function render(Request $request, Response $response) { if (!$this->environment->isSilent()) { header('HTTP/1.1 ' . $response->getStatusCode() . ' ' . $response->getStatusMessage()); foreach ($response->getHeaders() as $name => $value) { header($name . ': ' . $value); } } if ($response->getStatusCode() < 299) { $startRange = 0; $endRange = filesize($response->getContent()) - 1; try { $contentRange = $response->getHeader('Content-Range'); if (preg_match('/^bytes ([0-9]+)-([0-9]+)\\/([0-9]+)$/', $contentRange, $match)) { $startRange = (int) $match[1]; $endRange = (int) $match[2]; } } catch (HeaderNotFoundException $e) { //skipp } $buffer = 1024 * 8; $file = @fopen($response->getContent(), 'rb'); fseek($file, $startRange); while (!feof($file) && ($p = ftell($file)) <= $endRange) { if ($p + $buffer > $endRange) { $buffer = $endRange - $p + 1; } set_time_limit(0); echo fread($file, $buffer); flush(); } fclose($file); } }
/** * {@inheritdoc} */ public function execute(\Exception $exception) { if (!$this->dependencyInjection->get('environment')->isSilent()) { error_log($exception->getMessage() . " " . $exception->getFile() . "(" . $exception->getLine() . ")"); } $presenter = $this->getPresenter($this->request->getUrl()); $response = new Response(); $response->setStatusCode(500); $response->setContent($exception); if ($exception instanceof HTTPException) { $response->setStatusCode($exception->getStatusCode()); } $event = new ExecutePresenterEvent($this->request, $response); $this->dependencyInjection->get('eventManager')->fire('executePresenter', $event); $presenter->render($this->request, $response); }
/** * Support status code 4XX-5XX. * * @param Request $request * @param Response $response */ private function displayError(Request $request, Response $response) { $exception = $response->getContent(); $data = array('statusCode' => $response->getStatusCode(), 'message' => $exception->getMessage(), 'exception' => get_class($exception), 'file' => $exception->getFile(), 'line' => $exception->getLine()); if ($this->environment->isDebug()) { echo $this->twig->render('error.twig', $data); } else { echo $this->twig->render($response->getStatusCode() . '.twig'); } }
/** * Check authenticate. * * @param string $redirect * @param Request $request * @return Response */ private function createResponseRedirect($redirect, Request $request) { $response = new Response(); if ($request->isAjax()) { $response->setStatusCode(401); $response->setHeader('X-Location', $redirect); } else { $response->redirect($redirect); } return $response; }
/** * @return Response * @throws ActionNotFoundException */ private function invokeController() { $eventManager = $this->container->getEventManager(); $controller = new $this->className($this->request, $this->container); if (!is_callable([$controller, $this->methodName])) { throw new ActionNotFoundException($this->className, $this->methodName); } $response = null; $controllerData = call_user_func_array([$controller, $this->methodName], $this->request->getArguments()); if ($controllerData instanceof Response) { $response = $controllerData; } else { $response = new Response(); $response->setContent($controllerData); } if (!$response->getPresenter()) { $response->setPresenter($this->getPresenter()); } $event = new ExecutedActionEvent($this->request, $response); $eventManager->fire('executedAction', $event); return $response; }