You are here

CacheableSecuredRedirectResponse.php in Drupal 9

Same filename and directory in other branches
  1. 8 core/lib/Drupal/Core/Routing/CacheableSecuredRedirectResponse.php

File

core/lib/Drupal/Core/Routing/CacheableSecuredRedirectResponse.php
View source
<?php

namespace Drupal\Core\Routing;

use Drupal\Component\HttpFoundation\SecuredRedirectResponse;
use Drupal\Core\Cache\CacheableResponseInterface;
use Drupal\Core\Cache\CacheableResponseTrait;
use Symfony\Component\HttpFoundation\RedirectResponse;

/**
 * Provides a common base class for cacheable safe redirects.
 */
abstract class CacheableSecuredRedirectResponse extends SecuredRedirectResponse implements CacheableResponseInterface {
  use CacheableResponseTrait;

  /**
   * {@inheritdoc}
   */
  protected function fromResponse(RedirectResponse $response) {
    parent::fromResponse($response);
    $metadata = $this
      ->getCacheableMetadata();
    if ($response instanceof CacheableResponseInterface) {
      $metadata
        ->addCacheableDependency($response
        ->getCacheableMetadata());
    }
    else {
      $metadata
        ->setCacheMaxAge(0);
    }
  }

}

Classes

Namesort descending Description
CacheableSecuredRedirectResponse Provides a common base class for cacheable safe redirects.