Skip to content

Instantly share code, notes, and snippets.

@dator-zz
Created March 10, 2011 09:51
Show Gist options
  • Save dator-zz/863839 to your computer and use it in GitHub Desktop.
Save dator-zz/863839 to your computer and use it in GitHub Desktop.
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FOS\FacebookBundle\HttpFoundation;
use Symfony\Component\HttpFoundation\Response;
/**
* RedirectResponse represents an HTTP response doing a javascript redirect.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
class RedirectResponse extends Response
{
/**
* Creates a javascript redirect response so that it conforms to the rules defined for a redirect status code.
*
* @param string $url The URL to redirect to
* @param integer $status The status code (302 by default)
*
*/
public function __construct($url, $status = 302)
{
if (empty($url)) {
throw new \InvalidArgumentException('Cannot redirect to an empty URL.');
}
parent::__construct(
sprintf('<html><head></head><body><script>top.location = "%s";</script></body></html>',
htmlspecialchars($url, ENT_QUOTES)),
$status,
array($url)
);
if (!$this->isRedirect()) {
throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $status));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment