Skip to content

Commit f4a21dd

Browse files
committed
[HttpKernel] minor: add ability to construct with headers on http exceptions
1 parent 4d6ef9e commit f4a21dd

19 files changed

+97
-32
lines changed

src/Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ class AccessDeniedHttpException extends HttpException
2525
* @param string $message The internal exception message
2626
* @param \Exception $previous The previous exception
2727
* @param int $code The internal exception code
28+
* @param array $headers
2829
*/
29-
public function __construct($message = null, \Exception $previous = null, $code = 0)
30+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
3031
{
31-
parent::__construct(403, $message, $previous, array(), $code);
32+
parent::__construct(403, $message, $previous, $headers, $code);
3233
}
3334
}

src/Symfony/Component/HttpKernel/Exception/BadRequestHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class BadRequestHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(400, $message, $previous, array(), $code);
31+
parent::__construct(400, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/ConflictHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class ConflictHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(409, $message, $previous, array(), $code);
31+
parent::__construct(409, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/GoneHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class GoneHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(410, $message, $previous, array(), $code);
31+
parent::__construct(410, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/LengthRequiredHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class LengthRequiredHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(411, $message, $previous, array(), $code);
31+
parent::__construct(411, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/MethodNotAllowedHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ class MethodNotAllowedHttpException extends HttpException
2525
* @param string $message The internal exception message
2626
* @param \Exception $previous The previous exception
2727
* @param int $code The internal exception code
28+
* @param array $headers
2829
*/
29-
public function __construct(array $allow, $message = null, \Exception $previous = null, $code = 0)
30+
public function __construct(array $allow, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
3031
{
31-
$headers = array('Allow' => strtoupper(implode(', ', $allow)));
32+
$headers = array_merge($headers, array('Allow' => strtoupper(implode(', ', $allow))));
3233

3334
parent::__construct(405, $message, $previous, $headers, $code);
3435
}

src/Symfony/Component/HttpKernel/Exception/NotAcceptableHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class NotAcceptableHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(406, $message, $previous, array(), $code);
31+
parent::__construct(406, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/NotFoundHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class NotFoundHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(404, $message, $previous, array(), $code);
31+
parent::__construct(404, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/PreconditionFailedHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class PreconditionFailedHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(412, $message, $previous, array(), $code);
31+
parent::__construct(412, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ class PreconditionRequiredHttpException extends HttpException
2626
* @param string $message The internal exception message
2727
* @param \Exception $previous The previous exception
2828
* @param int $code The internal exception code
29+
* @param array $headers
2930
*/
30-
public function __construct($message = null, \Exception $previous = null, $code = 0)
31+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
3132
{
32-
parent::__construct(428, $message, $previous, array(), $code);
33+
parent::__construct(428, $message, $previous, $headers, $code);
3334
}
3435
}

src/Symfony/Component/HttpKernel/Exception/ServiceUnavailableHttpException.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ class ServiceUnavailableHttpException extends HttpException
2525
* @param string $message The internal exception message
2626
* @param \Exception $previous The previous exception
2727
* @param int $code The internal exception code
28+
* @param array $headers
2829
*/
29-
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0)
30+
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
3031
{
31-
$headers = array();
3232
if ($retryAfter) {
33-
$headers = array('Retry-After' => $retryAfter);
33+
$headers = array_merge($headers, array('Retry-After' => $retryAfter));
3434
}
3535

3636
parent::__construct(503, $message, $previous, $headers, $code);

src/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ class TooManyRequestsHttpException extends HttpException
2727
* @param string $message The internal exception message
2828
* @param \Exception $previous The previous exception
2929
* @param int $code The internal exception code
30+
* @param array $headers
3031
*/
31-
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0)
32+
public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
3233
{
33-
$headers = array();
3434
if ($retryAfter) {
35-
$headers = array('Retry-After' => $retryAfter);
35+
$headers = array_merge($headers, array('Retry-After' => $retryAfter));
3636
}
3737

3838
parent::__construct(429, $message, $previous, $headers, $code);

src/Symfony/Component/HttpKernel/Exception/UnauthorizedHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ class UnauthorizedHttpException extends HttpException
2525
* @param string $message The internal exception message
2626
* @param \Exception $previous The previous exception
2727
* @param int $code The internal exception code
28+
* @param array $headers
2829
*/
29-
public function __construct($challenge, $message = null, \Exception $previous = null, $code = 0)
30+
public function __construct($challenge, $message = null, \Exception $previous = null, $code = 0, array $headers = array())
3031
{
31-
$headers = array('WWW-Authenticate' => $challenge);
32+
$headers = array_merge($headers, array('WWW-Authenticate' => $challenge));
3233

3334
parent::__construct(401, $message, $previous, $headers, $code);
3435
}

src/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class UnprocessableEntityHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(422, $message, $previous, array(), $code);
31+
parent::__construct(422, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Exception/UnsupportedMediaTypeHttpException.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ class UnsupportedMediaTypeHttpException extends HttpException
2424
* @param string $message The internal exception message
2525
* @param \Exception $previous The previous exception
2626
* @param int $code The internal exception code
27+
* @param array $headers
2728
*/
28-
public function __construct($message = null, \Exception $previous = null, $code = 0)
29+
public function __construct($message = null, \Exception $previous = null, $code = 0, array $headers = array())
2930
{
30-
parent::__construct(415, $message, $previous, array(), $code);
31+
parent::__construct(415, $message, $previous, $headers, $code);
3132
}
3233
}

src/Symfony/Component/HttpKernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ public function testHeadersDefault()
1212
$this->assertSame(array('Allow' => 'GET, PUT'), $exception->getHeaders());
1313
}
1414

15+
public function testWithHeaderConstruct()
16+
{
17+
$headers = array(
18+
'Cache-Control' => 'public, s-maxage=1200'
19+
);
20+
21+
$exception = new MethodNotAllowedHttpException(array('get'), null, null, null, $headers);
22+
23+
$headers['Allow'] = 'GET';
24+
25+
$this->assertSame($headers, $exception->getHeaders());
26+
}
27+
1528
/**
1629
* @dataProvider headerDataProvider
1730
*/

src/Symfony/Component/HttpKernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ public function testHeadersDefaultRetryAfter()
1212
$this->assertSame(array('Retry-After' => 10), $exception->getHeaders());
1313
}
1414

15+
public function testWithHeaderConstruct()
16+
{
17+
$headers = array(
18+
'Cache-Control' => 'public, s-maxage=1337'
19+
);
20+
21+
$exception = new ServiceUnavailableHttpException(1337, null, null, null, $headers);
22+
23+
$headers['Retry-After'] = 1337;
24+
25+
$this->assertSame($headers, $exception->getHeaders());
26+
}
27+
1528
/**
1629
* @dataProvider headerDataProvider
1730
*/

src/Symfony/Component/HttpKernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ public function testHeadersDefaultRertyAfter()
1212
$this->assertSame(array('Retry-After' => 10), $exception->getHeaders());
1313
}
1414

15+
public function testWithHeaderConstruct()
16+
{
17+
$headers = array(
18+
'Cache-Control' => 'public, s-maxage=69'
19+
);
20+
21+
$exception = new TooManyRequestsHttpException(69, null, null, null, $headers);
22+
23+
$headers['Retry-After'] = 69;
24+
25+
$this->assertSame($headers, $exception->getHeaders());
26+
}
27+
1528
/**
1629
* @dataProvider headerDataProvider
1730
*/

src/Symfony/Component/HttpKernel/Tests/Exception/UnauthorizedHttpExceptionTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ public function testHeadersDefault()
1212
$this->assertSame(array('WWW-Authenticate' => 'Challenge'), $exception->getHeaders());
1313
}
1414

15+
public function testWithHeaderConstruct()
16+
{
17+
$headers = array(
18+
'Cache-Control' => 'public, s-maxage=1200'
19+
);
20+
21+
$exception = new UnauthorizedHttpException('Challenge', null, null, null, $headers);
22+
23+
$headers['WWW-Authenticate'] = 'Challenge';
24+
25+
$this->assertSame($headers, $exception->getHeaders());
26+
}
27+
1528
/**
1629
* @dataProvider headerDataProvider
1730
*/

0 commit comments

Comments
 (0)