/** * Adds the rate limit headers to the response * @param Response $response * @param integer $limit the maximum number of allowed requests during a period * @param integer $remaining the remaining number of allowed requests within the current period * @param integer $reset the number of seconds to wait before having maximum number of allowed requests again */ public function addHeaders(Response $response, $limit, $remaining, $reset) { if ($this->sendHeaders) { $response->getHeaders()->set('X-Rate-Limit-Limit', $limit)->set('X-Rate-Limit-Remaining', $remaining)->set('X-Rate-Limit-Reset', $reset); $response->setStatusCode(429); } }
protected function convertResponse(ResponseInterface $psrResponse, Request $request) { $request->setContentType($psrResponse->getHeaderLine('Content-Type')); $this->response->request = $request; $this->response->version = $psrResponse->getProtocolVersion(); $this->response->setStatusCode($psrResponse->getStatusCode(), $psrResponse->getReasonPhrase()); foreach ($psrResponse->getHeaders() as $name => $value) { $this->response->getHeaders()->setDefault($name, $value); } $this->response->content = $psrResponse->getBody()->getContents(); return $this->response; }
/** * Run mode debug. * * @param Response $response * @return Run */ protected static function debuger(Response $response = null) { $run = new Run(); if (isset($response)) { switch ($response->format) { case Response::FORMAT_JSON: $handler = new JsonResponseHandler(); break; case Response::FORMAT_XML: $handler = new XmlResponseHandler(); break; default: $request = new Request(); if ($request->isAjax() || $request->isCORS()) { $handler = new JsonResponseHandler(); } else { $handler = new PrettyPageHandler(); } } $run->setSendHttpCode(500); $response->setStatusCode(500); $response->send(); } else { $handler = new PrettyPageHandler(); } $run->pushHandler($handler); //$run->register(); return $run; }