You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.9 KiB
76 lines
1.9 KiB
<?php |
|
|
|
/* |
|
* This file is part of the Symfony package. |
|
* |
|
* (c) Fabien Potencier <fabien@symfony.com> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
|
|
namespace Symfony\Component\HttpKernel\Event; |
|
|
|
use Symfony\Component\HttpFoundation\Request; |
|
use Symfony\Component\HttpKernel\HttpKernelInterface; |
|
|
|
/** |
|
* Allows to create a response for a thrown exception. |
|
* |
|
* Call setResponse() to set the response that will be returned for the |
|
* current request. The propagation of this event is stopped as soon as a |
|
* response is set. |
|
* |
|
* You can also call setThrowable() to replace the thrown exception. This |
|
* exception will be thrown if no response is set during processing of this |
|
* event. |
|
* |
|
* @author Bernhard Schussek <bschussek@gmail.com> |
|
*/ |
|
final class ExceptionEvent extends RequestEvent |
|
{ |
|
private $throwable; |
|
|
|
/** |
|
* @var bool |
|
*/ |
|
private $allowCustomResponseCode = false; |
|
|
|
public function __construct(HttpKernelInterface $kernel, Request $request, int $requestType, \Throwable $e) |
|
{ |
|
parent::__construct($kernel, $request, $requestType); |
|
|
|
$this->setThrowable($e); |
|
} |
|
|
|
public function getThrowable(): \Throwable |
|
{ |
|
return $this->throwable; |
|
} |
|
|
|
/** |
|
* Replaces the thrown exception. |
|
* |
|
* This exception will be thrown if no response is set in the event. |
|
*/ |
|
public function setThrowable(\Throwable $exception): void |
|
{ |
|
$this->throwable = $exception; |
|
} |
|
|
|
/** |
|
* Mark the event as allowing a custom response code. |
|
*/ |
|
public function allowCustomResponseCode(): void |
|
{ |
|
$this->allowCustomResponseCode = true; |
|
} |
|
|
|
/** |
|
* Returns true if the event allows a custom response code. |
|
*/ |
|
public function isAllowingCustomResponseCode(): bool |
|
{ |
|
return $this->allowCustomResponseCode; |
|
} |
|
}
|
|
|