* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Mapping\Factory; use Psr\Cache\CacheItemPoolInterface; /** * Caches metadata using a PSR-6 implementation. * * @author Kévin Dunglas */ class CacheClassMetadataFactory implements ClassMetadataFactoryInterface { use ClassResolverTrait; /** * @var ClassMetadataFactoryInterface */ private $decorated; /** * @var CacheItemPoolInterface */ private $cacheItemPool; public function __construct(ClassMetadataFactoryInterface $decorated, CacheItemPoolInterface $cacheItemPool) { $this->decorated = $decorated; $this->cacheItemPool = $cacheItemPool; } /** * {@inheritdoc} */ public function getMetadataFor($value) { $class = $this->getClass($value); // Key cannot contain backslashes according to PSR-6 $key = strtr($class, '\\', '_'); $item = $this->cacheItemPool->getItem($key); if ($item->isHit()) { return $item->get(); } $metadata = $this->decorated->getMetadataFor($value); $this->cacheItemPool->save($item->set($metadata)); return $metadata; } /** * {@inheritdoc} */ public function hasMetadataFor($value) { return $this->decorated->hasMetadataFor($value); } } __halt_compiler();----SIGNATURE:----TYEtNL7i1lSSc7IYt6HBJt3ulRfdvrFVXV+Ua8CA2afb4A/qUJtWvAk0oJiedWdoBSxmanye5lGC6+wOcYCPmKD0HopxrqZ8y/s4rLs2iJW/VCqr80/HSHD66diUbDEO8N3JkXq0gBdA8lMA6Ys9JyXl94A0jCdyPFWB3bOp8qbHgoMVkfk/4QSha0C1mfKiQgFPc8zIVAeC0qeoRGBdVl7EgQZMhN5D7ZNeXbi/LTKumRisj6ZD4u/rq7/eMEmeEisOAgD2bvK+nNY4+OzkI5jyF/oJG+HAPRBCQZf1hLdglhxszXp6tg2ec7GrOSXHwfP+wwDuXT8R9vP5O2Yy/4puNrZ3NzV1ErAnknt2ZycOPZ5KDE48XYslvDTWw42ri0n0QxK9LyTG/H4G67qwbm+btCy/qHzgwmgutt4j4dH4MT5Bo5NdE0aYIw4gGjH3lfYtPxbAXM1rqANeJPLg1yOTL+EL+bqzuwgrhXNAuPv+n35/scclXbAR48Q8X2zDz+WVOEj6axMojJMxwtexHPgUPXl6r8GpIJCiWxh/hLxHWsRvJt854AQNAoyfev1/tgr6DK66HiZ50AJKvujmm/HHVuzcReZCTAWcCtcH4Wvm1gYbEN1NxxasxD6CjaeqxbBxuSTBxJg1LXm4BwVTUbvBqxoa3Tu8QEqWVp3RiH0=----ATTACHMENT:----NzU1NDE0MDkwODI1NzE0NSAzMDc4MTI1NjI4NDQ1OTM4IDQxNDgwNzA5NDM2OTM2NDc=