vendor/symfony/cache/Adapter/NullAdapter.php line 43

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\Cache\Adapter;
  11. use Psr\Cache\CacheItemInterface;
  12. use Symfony\Component\Cache\CacheItem;
  13. use Symfony\Contracts\Cache\CacheInterface;
  14. /**
  15.  * @author Titouan Galopin <galopintitouan@gmail.com>
  16.  */
  17. class NullAdapter implements AdapterInterfaceCacheInterface
  18. {
  19.     private static $createCacheItem;
  20.     public function __construct()
  21.     {
  22.         self::$createCacheItem ?? self::$createCacheItem \Closure::bind(
  23.             static function ($key) {
  24.                 $item = new CacheItem();
  25.                 $item->key $key;
  26.                 $item->isHit false;
  27.                 return $item;
  28.             },
  29.             null,
  30.             CacheItem::class
  31.         );
  32.     }
  33.     /**
  34.      * {@inheritdoc}
  35.      */
  36.     public function get(string $key, callable $callbackfloat $beta null, array &$metadata null): mixed
  37.     {
  38.         $save true;
  39.         return $callback((self::$createCacheItem)($key), $save);
  40.     }
  41.     /**
  42.      * {@inheritdoc}
  43.      */
  44.     public function getItem(mixed $key): CacheItem
  45.     {
  46.         return (self::$createCacheItem)($key);
  47.     }
  48.     /**
  49.      * {@inheritdoc}
  50.      */
  51.     public function getItems(array $keys = []): iterable
  52.     {
  53.         return $this->generateItems($keys);
  54.     }
  55.     /**
  56.      * {@inheritdoc}
  57.      */
  58.     public function hasItem(mixed $key): bool
  59.     {
  60.         return false;
  61.     }
  62.     /**
  63.      * {@inheritdoc}
  64.      */
  65.     public function clear(string $prefix ''): bool
  66.     {
  67.         return true;
  68.     }
  69.     /**
  70.      * {@inheritdoc}
  71.      */
  72.     public function deleteItem(mixed $key): bool
  73.     {
  74.         return true;
  75.     }
  76.     /**
  77.      * {@inheritdoc}
  78.      */
  79.     public function deleteItems(array $keys): bool
  80.     {
  81.         return true;
  82.     }
  83.     /**
  84.      * {@inheritdoc}
  85.      */
  86.     public function save(CacheItemInterface $item): bool
  87.     {
  88.         return true;
  89.     }
  90.     /**
  91.      * {@inheritdoc}
  92.      */
  93.     public function saveDeferred(CacheItemInterface $item): bool
  94.     {
  95.         return true;
  96.     }
  97.     /**
  98.      * {@inheritdoc}
  99.      */
  100.     public function commit(): bool
  101.     {
  102.         return true;
  103.     }
  104.     /**
  105.      * {@inheritdoc}
  106.      */
  107.     public function delete(string $key): bool
  108.     {
  109.         return $this->deleteItem($key);
  110.     }
  111.     private function generateItems(array $keys): \Generator
  112.     {
  113.         $f self::$createCacheItem;
  114.         foreach ($keys as $key) {
  115.             yield $key => $f($key);
  116.         }
  117.     }
  118. }