vendor/symfony/src/Symfony/Bundle/FrameworkBundle/HttpCache/HttpCache.php
author cavaliet
Mon, 07 Jul 2014 17:23:47 +0200
changeset 122 d672f7dd74dc
parent 0 7f95f8617b0b
permissions -rwxr-xr-x
Added tag V00.17 for changeset ada5f3d8b5b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
namespace Symfony\Bundle\FrameworkBundle\HttpCache;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use Symfony\Component\HttpKernel\HttpKernelInterface;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
use Symfony\Component\HttpKernel\HttpCache\HttpCache as BaseHttpCache;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
use Symfony\Component\HttpKernel\HttpCache\Esi;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
use Symfony\Component\HttpKernel\HttpCache\EsiResponseCacheStrategy;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
use Symfony\Component\HttpKernel\HttpCache\Store;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
use Symfony\Component\HttpFoundation\Request;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
use Symfony\Component\HttpFoundation\Response;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
/*
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
 * This file is part of the Symfony package.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
 * (c) Fabien Potencier <fabien@symfony.com>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
 * For the full copyright and license information, please view the LICENSE
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
 * file that was distributed with this source code.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
 */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
/**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
 * @author Fabien Potencier <fabien@symfony.com>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
 */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
abstract class HttpCache extends BaseHttpCache
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
{
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
     * Constructor.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
     *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
     * @param HttpKernelInterface $kernel An HttpKernelInterface instance
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
     */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    public function __construct(HttpKernelInterface $kernel)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        $store = new Store($kernel->getCacheDir().'/http_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        $esi = new Esi();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        parent::__construct($kernel, $store, $esi, array_merge(array('debug' => $kernel->isDebug()), $this->getOptions()));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
     * Forwards the Request to the backend and returns the Response.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
     *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
     * @param Request  $request A Request instance
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
     * @param Boolean  $raw     Whether to catch exceptions or not
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
     * @param Response $entry   A Response instance (the stale entry if present, null otherwise)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
     *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
     * @return Response A Response instance
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
     */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
    protected function forward(Request $request, $raw = false, Response $entry = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        $this->getKernel()->boot();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        $this->getKernel()->getContainer()->set('cache', $this);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        $this->getKernel()->getContainer()->set('esi', $this->getEsi());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        return parent::forward($request, $raw, $entry);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
    /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
     * Returns an array of options to customize the Cache configuration.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
     *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
     * @return array An array of options
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
     */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
    protected function getOptions()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
        return array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
}