* * 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:----L0xNL9cAadcMxlSTcBEWwLiG1jcYwrYlizUvvnMua3Dcg1FsVGq5tepdGuL2ZbflObyX0OZHAO2K1Tb29N+p4ZXlux73VLodO9y++40/bsE/5b8tiR501KS1mDqXna/NRtOIq9aOHtbkTV1OTnZqDRiSv4BSjBgcP4aJEG1z7vk0xffiU3OqNcaX4O2XSOd2PpRY6rDevry9QCyqD1TeuDHLzz27UcapVI87vIchsx4bL0ZjPZIE4nkxp9bmv6kyiyQ66/9ZMtN4QWgvC3KO/IrK+DGx59G9duB2GY/vTkWSoPyfTUjuLaFXMrtVDgHOs5jy3fRXllqFuv8v0lag4xS+VABgyUqe/N/MvFW8XbSgPsoXFX1yOMvKLDvCIw4FDmtbAL+PQAL5P43J7qOtZ4W8AVFZqtp5KrkS3bELrgvanDGDGji2RfN12gTXDq8DM1jqmPM77bLQV7x/XisrLaATmpSQS4Poyjq4CEyGJ9GZ+Sm3obmU32O66cwj+y9/AOs1fZmb/2fk9y+lY8hfJV8Zqc1laqr3SV2gAe+pBUp1Jsq8JXcsAieqCQee5yr5X60heHST093rahHmeBkJkMvhGxYaQugMctixm+wVKB2KZkz3BadwitnHGLvL4qCQCwf7j1zeRbvPpqTzXalUEl77J4+J8roARAWwmsyVBzc=----ATTACHMENT:----MzY5MTIwNzI5NTUzNjIyOSA5MzQzODY5ODIzNjM1MzQ1IDY0MDAzOTQ0MjU4OTk5OTI=