/** * @param Request $request * @param Response $response * * @return HttpException */ public static function factory(Request $request, Response $response) { if ($response->isClientError()) { $label = 'Client error response'; } elseif ($response->isServerError()) { $label = 'Server error response'; } else { $label = 'Unsuccessful response'; } $message = implode(PHP_EOL, array($label, '[status code] ' . $response->getStatusCode(), '[reason phrase] ' . $response->getReasonPhrase(), '[url] ' . $request->getUrl())); $e = new static($message, $response->getStatusCode()); $e->setResponse($response); $e->setRequest($request); return $e; }