2015-08-17 17:00:26 -07:00
< ? 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 Symfony\Component\HttpKernel\HttpCache ;
use Symfony\Component\HttpFoundation\Request ;
use Symfony\Component\HttpFoundation\Response ;
interface SurrogateInterface
{
/**
2015-10-08 11:40:12 -07:00
* Returns surrogate name .
2015-08-17 17:00:26 -07:00
*
* @ return string
*/
public function getName ();
/**
* Returns a new cache strategy instance .
*
* @ return ResponseCacheStrategyInterface A ResponseCacheStrategyInterface instance
*/
public function createCacheStrategy ();
/**
* Checks that at least one surrogate has Surrogate capability .
*
* @ param Request $request A Request instance
*
* @ return bool true if one surrogate has Surrogate capability , false otherwise
*/
public function hasSurrogateCapability ( Request $request );
/**
* Adds Surrogate - capability to the given Request .
*
* @ param Request $request A Request instance
*/
public function addSurrogateCapability ( Request $request );
/**
* Adds HTTP headers to specify that the Response needs to be parsed for Surrogate .
*
* This method only adds an Surrogate HTTP header if the Response has some Surrogate tags .
*
* @ param Response $response A Response instance
*/
public function addSurrogateControl ( Response $response );
/**
* Checks that the Response needs to be parsed for Surrogate tags .
*
* @ param Response $response A Response instance
*
* @ return bool true if the Response needs to be parsed , false otherwise
*/
public function needsParsing ( Response $response );
/**
* Renders a Surrogate tag .
*
* @ param string $uri A URI
* @ param string $alt An alternate URI
* @ param bool $ignoreErrors Whether to ignore errors or not
* @ param string $comment A comment to add as an esi : include tag
*
* @ return string
*/
public function renderIncludeTag ( $uri , $alt = null , $ignoreErrors = true , $comment = '' );
/**
* Replaces a Response Surrogate tags with the included resource content .
*
* @ param Request $request A Request instance
* @ param Response $response A Response instance
*
* @ return Response
*/
public function process ( Request $request , Response $response );
/**
* Handles a Surrogate from the cache .
*
* @ param HttpCache $cache An HttpCache instance
* @ param string $uri The main URI
* @ param string $alt An alternative URI
* @ param bool $ignoreErrors Whether to ignore errors or not
*
* @ return string
*
* @ throws \RuntimeException
* @ throws \Exception
*/
public function handle ( HttpCache $cache , $uri , $alt , $ignoreErrors );
}