mirror of
https://github.com/symfony/framework-bundle.git
synced 2026-03-24 17:32:09 +01:00
* 3.4: fixed CS fixed short array CS in comments fixed CS in ExpressionLanguage fixtures fixed CS in generated files fixed CS on generated container files fixed CS on Form PHP templates fixed CS on YAML fixtures fixed fixtures switched array() to []
80 lines
2.3 KiB
PHP
80 lines
2.3 KiB
PHP
<?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\Bundle\FrameworkBundle\HttpCache;
|
|
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpKernel\HttpCache\Esi;
|
|
use Symfony\Component\HttpKernel\HttpCache\HttpCache as BaseHttpCache;
|
|
use Symfony\Component\HttpKernel\HttpCache\Store;
|
|
use Symfony\Component\HttpKernel\KernelInterface;
|
|
|
|
/**
|
|
* Manages HTTP cache objects in a Container.
|
|
*
|
|
* @author Fabien Potencier <fabien@symfony.com>
|
|
*/
|
|
class HttpCache extends BaseHttpCache
|
|
{
|
|
protected $cacheDir;
|
|
protected $kernel;
|
|
|
|
/**
|
|
* @param KernelInterface $kernel A KernelInterface instance
|
|
* @param string $cacheDir The cache directory (default used if null)
|
|
*/
|
|
public function __construct(KernelInterface $kernel, string $cacheDir = null)
|
|
{
|
|
$this->kernel = $kernel;
|
|
$this->cacheDir = $cacheDir;
|
|
|
|
parent::__construct($kernel, $this->createStore(), $this->createSurrogate(), array_merge(['debug' => $kernel->isDebug()], $this->getOptions()));
|
|
}
|
|
|
|
/**
|
|
* Forwards the Request to the backend and returns the Response.
|
|
*
|
|
* @param Request $request A Request instance
|
|
* @param bool $raw Whether to catch exceptions or not
|
|
* @param Response $entry A Response instance (the stale entry if present, null otherwise)
|
|
*
|
|
* @return Response A Response instance
|
|
*/
|
|
protected function forward(Request $request, $raw = false, Response $entry = null)
|
|
{
|
|
$this->getKernel()->boot();
|
|
$this->getKernel()->getContainer()->set('cache', $this);
|
|
|
|
return parent::forward($request, $raw, $entry);
|
|
}
|
|
|
|
/**
|
|
* Returns an array of options to customize the Cache configuration.
|
|
*
|
|
* @return array An array of options
|
|
*/
|
|
protected function getOptions()
|
|
{
|
|
return [];
|
|
}
|
|
|
|
protected function createSurrogate()
|
|
{
|
|
return new Esi();
|
|
}
|
|
|
|
protected function createStore()
|
|
{
|
|
return new Store($this->cacheDir ?: $this->kernel->getCacheDir().'/http_cache');
|
|
}
|
|
}
|