function CustomPageExceptionHtmlSubscriber::makeSubrequestToCustomPath
Makes a subrequest to retrieve the custom error page.
Parameters
\Symfony\Component\HttpKernel\Event\ExceptionEvent $event: The event to process.
string $custom_path: The custom path to which to make a subrequest for this error message.
int $status_code: The status code for the error being handled.
2 calls to CustomPageExceptionHtmlSubscriber::makeSubrequestToCustomPath()
- CustomPageExceptionHtmlSubscriber::on403 in core/lib/ Drupal/ Core/ EventSubscriber/ CustomPageExceptionHtmlSubscriber.php 
- Handles a 403 error for HTML.
- CustomPageExceptionHtmlSubscriber::on404 in core/lib/ Drupal/ Core/ EventSubscriber/ CustomPageExceptionHtmlSubscriber.php 
- Handles a 404 error for HTML.
File
- 
              core/lib/ Drupal/ Core/ EventSubscriber/ CustomPageExceptionHtmlSubscriber.php, line 95 
Class
- CustomPageExceptionHtmlSubscriber
- Exception subscriber for handling core custom HTML error pages.
Namespace
Drupal\Core\EventSubscriberCode
protected function makeSubrequestToCustomPath(ExceptionEvent $event, $custom_path, $status_code) {
  $url = Url::fromUserInput($custom_path);
  if ($url->isRouted()) {
    $access_result = $this->accessManager
      ->checkNamedRoute($url->getRouteName(), $url->getRouteParameters(), NULL, TRUE);
    $request = $event->getRequest();
    // Merge the custom path's route's access result's cacheability metadata
    // with the existing one (from the master request), otherwise create it.
    if (!$request->attributes
      ->has(AccessAwareRouterInterface::ACCESS_RESULT)) {
      $request->attributes
        ->set(AccessAwareRouterInterface::ACCESS_RESULT, $access_result);
    }
    else {
      $existing_access_result = $request->attributes
        ->get(AccessAwareRouterInterface::ACCESS_RESULT);
      if ($existing_access_result instanceof RefinableCacheableDependencyInterface) {
        $existing_access_result->addCacheableDependency($access_result);
      }
    }
    // Only perform the subrequest if the custom path is actually accessible.
    if (!$access_result->isAllowed()) {
      return;
    }
  }
  $this->makeSubrequest($event, $custom_path, $status_code);
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
