class ExceptionTestSiteSubscriber in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/EventSubscriber/ExceptionTestSiteSubscriber.php \Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
Custom handling of errors when in a system-under-test.
Hierarchy
- class \Drupal\Core\EventSubscriber\HttpExceptionSubscriberBase implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
- class \Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
Expanded class hierarchy of ExceptionTestSiteSubscriber
1 string reference to 'ExceptionTestSiteSubscriber'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses ExceptionTestSiteSubscriber
File
- core/
lib/ Drupal/ Core/ EventSubscriber/ ExceptionTestSiteSubscriber.php, line 11
Namespace
Drupal\Core\EventSubscriberView source
class ExceptionTestSiteSubscriber extends HttpExceptionSubscriberBase {
/**
* {@inheritdoc}
*/
protected static function getPriority() {
return 3;
}
/**
* {@inheritdoc}
*/
protected function getHandledFormats() {
return [
'html',
];
}
/**
* Checks for special handling of errors inside Simpletest.
*
* @todo The $headers array appears to not actually get used at all in the
* original code. It's quite possible that this entire method is now
* vestigial and can be removed.
*
* @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
*/
public function on500(GetResponseForExceptionEvent $event) {
$exception = $event
->getException();
$error = Error::decodeException($exception);
$headers = [];
// When running inside the testing framework, we relay the errors
// to the tested site by the way of HTTP headers.
if (DRUPAL_TEST_IN_CHILD_SITE && !headers_sent() && (!defined('SIMPLETEST_COLLECT_ERRORS') || SIMPLETEST_COLLECT_ERRORS)) {
// $number does not use drupal_static as it should not be reset
// as it uniquely identifies each PHP error.
static $number = 0;
$assertion = [
$error['@message'],
$error['%type'],
[
'function' => $error['%function'],
'file' => $error['%file'],
'line' => $error['%line'],
],
];
$headers['X-Drupal-Assertion-' . $number] = rawurlencode(serialize($assertion));
$number++;
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ExceptionTestSiteSubscriber:: |
protected | function |
Specifies the request formats this subscriber will respond to. Overrides HttpExceptionSubscriberBase:: |
|
ExceptionTestSiteSubscriber:: |
protected static | function |
Specifies the priority of all listeners in this class. Overrides HttpExceptionSubscriberBase:: |
|
ExceptionTestSiteSubscriber:: |
public | function | Checks for special handling of errors inside Simpletest. | |
HttpExceptionSubscriberBase:: |
public static | function | Registers the methods in this class that should be listeners. | |
HttpExceptionSubscriberBase:: |
public | function | Handles errors for this subscriber. |