[HttpKernel] minor: add ability to construct with headers on http exceptions

This commit is contained in:
Gavin Staniforth 2017-03-30 22:53:13 +01:00
parent 4d6ef9eac7
commit 612fb59b32
19 changed files with 97 additions and 32 deletions

View File

@ -25,9 +25,10 @@ class AccessDeniedHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(403, $message, $previous, array(), $code);
parent::__construct(403, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class BadRequestHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(400, $message, $previous, array(), $code);
parent::__construct(400, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class ConflictHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(409, $message, $previous, array(), $code);
parent::__construct(409, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class GoneHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(410, $message, $previous, array(), $code);
parent::__construct(410, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class LengthRequiredHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(411, $message, $previous, array(), $code);
parent::__construct(411, $message, $previous, $headers, $code);
}
}

View File

@ -25,10 +25,11 @@ class MethodNotAllowedHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct(array $allow, $message = null, \Exception $previous = null, $code = 0)
public function __construct(array $allow, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
$headers = array('Allow' => strtoupper(implode(', ', $allow)));
$headers['Allow'] = strtoupper(implode(', ', $allow));
parent::__construct(405, $message, $previous, $headers, $code);
}

View File

@ -24,9 +24,10 @@ class NotAcceptableHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(406, $message, $previous, array(), $code);
parent::__construct(406, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class NotFoundHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(404, $message, $previous, array(), $code);
parent::__construct(404, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class PreconditionFailedHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(412, $message, $previous, array(), $code);
parent::__construct(412, $message, $previous, $headers, $code);
}
}

View File

@ -26,9 +26,10 @@ class PreconditionRequiredHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(428, $message, $previous, array(), $code);
parent::__construct(428, $message, $previous, $headers, $code);
}
}

View File

@ -25,12 +25,12 @@ class ServiceUnavailableHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0)
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
$headers = array();
if ($retryAfter) {
$headers = array('Retry-After' => $retryAfter);
$headers['Retry-After'] = $retryAfter;
}
parent::__construct(503, $message, $previous, $headers, $code);

View File

@ -27,12 +27,12 @@ class TooManyRequestsHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0)
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
$headers = array();
if ($retryAfter) {
$headers = array('Retry-After' => $retryAfter);
$headers['Retry-After'] = $retryAfter;
}
parent::__construct(429, $message, $previous, $headers, $code);

View File

@ -25,10 +25,11 @@ class UnauthorizedHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($challenge, $message = null, \Exception $previous = null, $code = 0)
public function __construct($challenge, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
$headers = array('WWW-Authenticate' => $challenge);
$headers['WWW-Authenticate'] = $challenge;
parent::__construct(401, $message, $previous, $headers, $code);
}

View File

@ -24,9 +24,10 @@ class UnprocessableEntityHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(422, $message, $previous, array(), $code);
parent::__construct(422, $message, $previous, $headers, $code);
}
}

View File

@ -24,9 +24,10 @@ class UnsupportedMediaTypeHttpException extends HttpException
* @param string $message The internal exception message
* @param \Exception $previous The previous exception
* @param int $code The internal exception code
* @param array $headers
*/
public function __construct($message = null, \Exception $previous = null, $code = 0)
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
{
parent::__construct(415, $message, $previous, array(), $code);
parent::__construct(415, $message, $previous, $headers, $code);
}
}

View File

@ -12,6 +12,19 @@ class MethodNotAllowedHttpExceptionTest extends HttpExceptionTest
$this->assertSame(array('Allow' => 'GET, PUT'), $exception->getHeaders());
}
public function testWithHeaderConstruct()
{
$headers = array(
'Cache-Control' => 'public, s-maxage=1200',
);
$exception = new MethodNotAllowedHttpException(array('get'), null, null, null, $headers);
$headers['Allow'] = 'GET';
$this->assertSame($headers, $exception->getHeaders());
}
/**
* @dataProvider headerDataProvider
*/

View File

@ -12,6 +12,19 @@ class ServiceUnavailableHttpExceptionTest extends HttpExceptionTest
$this->assertSame(array('Retry-After' => 10), $exception->getHeaders());
}
public function testWithHeaderConstruct()
{
$headers = array(
'Cache-Control' => 'public, s-maxage=1337',
);
$exception = new ServiceUnavailableHttpException(1337, null, null, null, $headers);
$headers['Retry-After'] = 1337;
$this->assertSame($headers, $exception->getHeaders());
}
/**
* @dataProvider headerDataProvider
*/

View File

@ -12,6 +12,19 @@ class TooManyRequestsHttpExceptionTest extends HttpExceptionTest
$this->assertSame(array('Retry-After' => 10), $exception->getHeaders());
}
public function testWithHeaderConstruct()
{
$headers = array(
'Cache-Control' => 'public, s-maxage=69',
);
$exception = new TooManyRequestsHttpException(69, null, null, null, $headers);
$headers['Retry-After'] = 69;
$this->assertSame($headers, $exception->getHeaders());
}
/**
* @dataProvider headerDataProvider
*/

View File

@ -12,6 +12,19 @@ class UnauthorizedHttpExceptionTest extends HttpExceptionTest
$this->assertSame(array('WWW-Authenticate' => 'Challenge'), $exception->getHeaders());
}
public function testWithHeaderConstruct()
{
$headers = array(
'Cache-Control' => 'public, s-maxage=1200',
);
$exception = new UnauthorizedHttpException('Challenge', null, null, null, $headers);
$headers['WWW-Authenticate'] = 'Challenge';
$this->assertSame($headers, $exception->getHeaders());
}
/**
* @dataProvider headerDataProvider
*/