diff --git a/src/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php b/src/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php index 79d8639a5f..772379bf89 100644 --- a/src/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/BadRequestHttpException.php b/src/Symfony/Component/HttpKernel/Exception/BadRequestHttpException.php index 5f68172a8d..cc78e4a267 100644 --- a/src/Symfony/Component/HttpKernel/Exception/BadRequestHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/BadRequestHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/ConflictHttpException.php b/src/Symfony/Component/HttpKernel/Exception/ConflictHttpException.php index 34d738ed12..83f78c6614 100644 --- a/src/Symfony/Component/HttpKernel/Exception/ConflictHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/ConflictHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/GoneHttpException.php b/src/Symfony/Component/HttpKernel/Exception/GoneHttpException.php index 16ea223fae..30c5831b14 100644 --- a/src/Symfony/Component/HttpKernel/Exception/GoneHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/GoneHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/LengthRequiredHttpException.php b/src/Symfony/Component/HttpKernel/Exception/LengthRequiredHttpException.php index 0c4b9431f4..2b29d1ab2c 100644 --- a/src/Symfony/Component/HttpKernel/Exception/LengthRequiredHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/LengthRequiredHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php b/src/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php index 78dd26bf0f..0b0883bb68 100644 --- a/src/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php @@ -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); } diff --git a/src/Symfony/Component/HttpKernel/Exception/NotAcceptableHttpException.php b/src/Symfony/Component/HttpKernel/Exception/NotAcceptableHttpException.php index cc6be4ba45..369f480a38 100644 --- a/src/Symfony/Component/HttpKernel/Exception/NotAcceptableHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/NotAcceptableHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php b/src/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php index 4639e379b9..4a1a4af830 100644 --- a/src/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/PreconditionFailedHttpException.php b/src/Symfony/Component/HttpKernel/Exception/PreconditionFailedHttpException.php index 9df0e7b49a..28a36edb92 100644 --- a/src/Symfony/Component/HttpKernel/Exception/PreconditionFailedHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/PreconditionFailedHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php b/src/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php index 08ebca2241..fc96b2b397 100644 --- a/src/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/ServiceUnavailableHttpException.php b/src/Symfony/Component/HttpKernel/Exception/ServiceUnavailableHttpException.php index 32b9e2d261..77dafe5698 100644 --- a/src/Symfony/Component/HttpKernel/Exception/ServiceUnavailableHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/ServiceUnavailableHttpException.php @@ -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); diff --git a/src/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php b/src/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php index ab86e0920b..8250e5c2af 100644 --- a/src/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php @@ -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); diff --git a/src/Symfony/Component/HttpKernel/Exception/UnauthorizedHttpException.php b/src/Symfony/Component/HttpKernel/Exception/UnauthorizedHttpException.php index 0dfe42db97..e5f6162515 100644 --- a/src/Symfony/Component/HttpKernel/Exception/UnauthorizedHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/UnauthorizedHttpException.php @@ -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); } diff --git a/src/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php b/src/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php index eb13f563f6..ef25bdd764 100644 --- a/src/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Exception/UnsupportedMediaTypeHttpException.php b/src/Symfony/Component/HttpKernel/Exception/UnsupportedMediaTypeHttpException.php index a9d8fa086f..a8f2de8c54 100644 --- a/src/Symfony/Component/HttpKernel/Exception/UnsupportedMediaTypeHttpException.php +++ b/src/Symfony/Component/HttpKernel/Exception/UnsupportedMediaTypeHttpException.php @@ -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); } } diff --git a/src/Symfony/Component/HttpKernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php b/src/Symfony/Component/HttpKernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php index b5def13ce3..ea82014952 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php @@ -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 */ diff --git a/src/Symfony/Component/HttpKernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php b/src/Symfony/Component/HttpKernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php index e41a23d4e7..83cbdc2bcc 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php @@ -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 */ diff --git a/src/Symfony/Component/HttpKernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php b/src/Symfony/Component/HttpKernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php index 2079bb3380..6ec7f3d079 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php @@ -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 */ diff --git a/src/Symfony/Component/HttpKernel/Tests/Exception/UnauthorizedHttpExceptionTest.php b/src/Symfony/Component/HttpKernel/Tests/Exception/UnauthorizedHttpExceptionTest.php index 37a0028dc8..1e93d25b1a 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Exception/UnauthorizedHttpExceptionTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Exception/UnauthorizedHttpExceptionTest.php @@ -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 */