d413d2c9d641d18952a305be9e599ed50a221ce1
[yaffs-website] / http-kernel / CacheClearer / Psr6CacheClearer.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\HttpKernel\CacheClearer;
13
14 use Psr\Cache\CacheItemPoolInterface;
15
16 /**
17  * @author Nicolas Grekas <p@tchwork.com>
18  */
19 class Psr6CacheClearer implements CacheClearerInterface
20 {
21     private $pools = array();
22
23     public function __construct(array $pools = array())
24     {
25         $this->pools = $pools;
26     }
27
28     public function addPool(CacheItemPoolInterface $pool)
29     {
30         @trigger_error(sprintf('The %s() method is deprecated since Symfony 3.3 and will be removed in 4.0. Pass an array of pools indexed by name to the constructor instead.', __METHOD__), E_USER_DEPRECATED);
31
32         $this->pools[] = $pool;
33     }
34
35     public function hasPool($name)
36     {
37         return isset($this->pools[$name]);
38     }
39
40     public function clearPool($name)
41     {
42         if (!isset($this->pools[$name])) {
43             throw new \InvalidArgumentException(sprintf('Cache pool not found: %s.', $name));
44         }
45
46         return $this->pools[$name]->clear();
47     }
48
49     /**
50      * {@inheritdoc}
51      */
52     public function clear($cacheDir)
53     {
54         foreach ($this->pools as $pool) {
55             $pool->clear();
56         }
57     }
58 }