Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. AbstractSurrogate.php

function AbstractSurrogate::handle

Overrides SurrogateInterface::handle

File

vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php, line 71

Class

AbstractSurrogate
Abstract class implementing Surrogate capabilities to Request and Response instances.

Namespace

Symfony\Component\HttpKernel\HttpCache

Code

public function handle(HttpCache $cache, string $uri, string $alt, bool $ignoreErrors) : string {
    $subRequest = Request::create($uri, Request::METHOD_GET, [], $cache->getRequest()->cookies
        ->all(), [], $cache->getRequest()->server
        ->all());
    try {
        $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
        if (!$response->isSuccessful() && Response::HTTP_NOT_MODIFIED !== $response->getStatusCode()) {
            throw new \RuntimeException(\sprintf('Error when rendering "%s" (Status code is %d).', $subRequest->getUri(), $response->getStatusCode()));
        }
        return $response->getContent();
    } catch (\Exception $e) {
        if ($alt) {
            return $this->handle($cache, $alt, '', $ignoreErrors);
        }
        if (!$ignoreErrors) {
            throw $e;
        }
    }
    return '';
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal