vendor/ezsystems/stash-bundle/Service/CacheService.php line 25

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the StashBundle package.
  4.  *
  5.  * (c) Josh Hall-Bachner <[email protected]>
  6.  * (c) Robert Hafner <[email protected]>
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11. namespace Tedivm\StashBundle\Service;
  12. use Stash\DriverList;
  13. use Stash\Interfaces\DriverInterface;
  14. use Stash\Pool;
  15. /**
  16.  * Class CacheService
  17.  * @package Tedivm\StashBundle\Service
  18.  * @author Josh Hall-Bachner <[email protected]>
  19.  * @author Robert Hafner <[email protected]>
  20.  */
  21. class CacheService extends Pool
  22. {
  23.     /**
  24.      * {@inheritdoc}
  25.      */
  26.     protected $itemClass '\Tedivm\StashBundle\Service\CacheItem';
  27.     /**
  28.      * @var CacheTracker|null
  29.      */
  30.     protected $tracker;
  31.     /**
  32.      * Constructs the cache holder. Parameter is a Stash driver which is dynamically injected at service creation.
  33.      *
  34.      * @param string                            $name    Used to name and prefix the cache to avoid cache collisions across installs
  35.      * @param \Stash\Interfaces\DriverInterface $driver
  36.      * @param CacheTracker|null                 $tracker
  37.      */
  38.     public function __construct($nameDriverInterface $driver nullCacheTracker $tracker null)
  39.     {
  40.         $this->tracker $tracker;
  41.         $this->setNamespace($name);
  42.         if (isset($driver)) {
  43.             $this->setDriver($driver);
  44.         }
  45.         parent::__construct($driver);
  46.     }
  47.     /**
  48.      * {@inheritdoc}
  49.      */
  50.     public function getItem($key)
  51.     {
  52.         /** @var CacheItem $item */
  53.         $item parent::getItem($key);
  54.         if (isset($this->tracker)) {
  55.             $item->setCacheTracker($this->tracker);
  56.         }
  57.         return $item;
  58.     }
  59.     /**
  60.      * Returns the current list of drivers that the system is able to use.
  61.      *
  62.      * @return array
  63.      */
  64.     public function getDrivers()
  65.     {
  66.         return DriverList::getAvailableDrivers();
  67.     }
  68.     /**
  69.      * Returns the current tracker.
  70.      *
  71.      * @return CacheTracker|false
  72.      */
  73.     public function getTracker()
  74.     {
  75.         return isset($this->tracker) ? $this->tracker false;
  76.     }
  77. }