vendor/symfony/validator/Mapping/Cache/Psr6Cache.php line 26

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\Validator\Mapping\Cache;
  11. use Psr\Cache\CacheItemPoolInterface;
  12. use Symfony\Component\Validator\Mapping\ClassMetadata;
  13. @trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.4.'Psr6Cache::class), \E_USER_DEPRECATED);
  14. /**
  15.  * PSR-6 adapter.
  16.  *
  17.  * @author Kévin Dunglas <dunglas@gmail.com>
  18.  *
  19.  * @deprecated since Symfony 4.4.
  20.  */
  21. class Psr6Cache implements CacheInterface
  22. {
  23.     private $cacheItemPool;
  24.     public function __construct(CacheItemPoolInterface $cacheItemPool)
  25.     {
  26.         $this->cacheItemPool $cacheItemPool;
  27.     }
  28.     /**
  29.      * {@inheritdoc}
  30.      */
  31.     public function has($class)
  32.     {
  33.         return $this->cacheItemPool->hasItem($this->escapeClassName($class));
  34.     }
  35.     /**
  36.      * {@inheritdoc}
  37.      */
  38.     public function read($class)
  39.     {
  40.         $item $this->cacheItemPool->getItem($this->escapeClassName($class));
  41.         if (!$item->isHit()) {
  42.             return false;
  43.         }
  44.         return $item->get();
  45.     }
  46.     /**
  47.      * {@inheritdoc}
  48.      */
  49.     public function write(ClassMetadata $metadata)
  50.     {
  51.         $item $this->cacheItemPool->getItem($this->escapeClassName($metadata->getClassName()));
  52.         $item->set($metadata);
  53.         $this->cacheItemPool->save($item);
  54.     }
  55.     /**
  56.      * Replaces backslashes by dots in a class name.
  57.      */
  58.     private function escapeClassName(string $class): string
  59.     {
  60.         if (str_contains($class'@')) {
  61.             // anonymous class: replace all PSR6-reserved characters
  62.             return str_replace(["\0"'\\''/''@'':''{''}''('')'], '.'$class);
  63.         }
  64.         return str_replace('\\''.'$class);
  65.     }
  66. }