RedirectResponse represents an HTTP response doing a redirect.

@author Fabien Potencier <fabien@symfony.com>

@api

Hierarchy

Expanded class hierarchy of RedirectResponse

27 files declare their use of RedirectResponse
batch.inc in core/includes/batch.inc
Batch processing API for processes to run in multiple HTTP requests.
block_content.pages.inc in core/modules/block_content/block_content.pages.inc
Provides page callbacks for custom blocks.
CommentController.php in core/modules/comment/src/Controller/CommentController.php
Contains \Drupal\comment\Controller\CommentController.
ConfigTestController.php in core/modules/config/tests/config_test/src/ConfigTestController.php
Contains \Drupal\config_test\ConfigTestController.
config_test.module in core/modules/config/tests/config_test/config_test.module
Provides Config module hook implementations for testing purposes.

... See full list

File

core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php, line 21

Namespace

Symfony\Component\HttpFoundation
View source
class RedirectResponse extends Response
 {
  protected $targetUrl;

  /**
   * Creates a redirect response so that it conforms to the rules defined for a redirect status code.
   *
   * @param string $url     The URL to redirect to
   * @param int    $status  The status code (302 by default)
   * @param array  $headers The headers (Location is always set to the given URL)
   *
   * @throws \InvalidArgumentException
   *
   * @see http://tools.ietf.org/html/rfc2616#section-10.3
   *
   * @api
   */
  public function __construct($url, $status = 302, $headers = array()) 
   {
    if (empty($url)) {
      throw new \InvalidArgumentException('Cannot redirect to an empty URL.');
    }

    parent::__construct('', $status, $headers);

    $this->setTargetUrl($url);

    if (!$this->isRedirect()) {
      throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $status));
    }
  }

  /**
   * {@inheritdoc}
   */
  public static function create($url = '', $status = 302, $headers = array()) 
   {
    return new static($url, $status, $headers);
  }

  /**
   * Returns the target URL.
   *
   * @return string target URL
   */
  public function getTargetUrl() 
   {
    return $this->targetUrl;
  }

  /**
   * Sets the redirect target of this response.
   *
   * @param string $url The URL to redirect to
   *
   * @return RedirectResponse The current response.
   *
   * @throws \InvalidArgumentException
   */
  public function setTargetUrl($url) 
   {
    if (empty($url)) {
      throw new \InvalidArgumentException('Cannot redirect to an empty URL.');
    }

    $this->targetUrl = $url;

    $this->setContent(
    sprintf('<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="1;url=%1$s" />

        <title>Redirecting to %1$s</title>
    </head>
    <body>
        Redirecting to <a href="%1$s">%1$s</a>.
    </body>
</html>', htmlspecialchars($url, ENT_QUOTES, 'UTF-8')));

    $this->headers->set('Location', $url);

    return $this;
  }
}

Members

Contains filters are case sensitive
Namesort descending Modifiers Type Description
RedirectResponse::$targetUrl protected property
RedirectResponse::create public static function
RedirectResponse::getTargetUrl public function Returns the target URL.
RedirectResponse::setTargetUrl public function Sets the redirect target of this response.
RedirectResponse::__construct public function Creates a redirect response so that it conforms to the rules defined for a redirect status code.