private function HttpCache::restoreResponseBody

Restores the Response body.

Parameters

Request $request A Request instance:

Response $response A Response instance:

Return value

Response A Response instance

1 call to HttpCache::restoreResponseBody()
HttpCache::handle in drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
@api

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php, line 581

Class

HttpCache
Cache provides HTTP caching.

Namespace

Symfony\Component\HttpKernel\HttpCache

Code

private function restoreResponseBody(Request $request, Response $response) {
  if ('HEAD' === $request
    ->getMethod() || 304 === $response
    ->getStatusCode()) {
    $response
      ->setContent(null);
    $response->headers
      ->remove('X-Body-Eval');
    $response->headers
      ->remove('X-Body-File');
    return;
  }
  if ($response->headers
    ->has('X-Body-Eval')) {
    ob_start();
    if ($response->headers
      ->has('X-Body-File')) {
      include $response->headers
        ->get('X-Body-File');
    }
    else {
      eval('; ?>' . $response
        ->getContent() . '<?php ;');
    }
    $response
      ->setContent(ob_get_clean());
    $response->headers
      ->remove('X-Body-Eval');
    if (!$response->headers
      ->has('Transfer-Encoding')) {
      $response->headers
        ->set('Content-Length', strlen($response
        ->getContent()));
    }
  }
  elseif ($response->headers
    ->has('X-Body-File')) {
    $response
      ->setContent(file_get_contents($response->headers
      ->get('X-Body-File')));
  }
  else {
    return;
  }
  $response->headers
    ->remove('X-Body-File');
}