* * 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 Doctrine\Common\Cache\Cache; use Symfony\Component\Serializer\Exception\InvalidArgumentException; use Symfony\Component\Serializer\Mapping\ClassMetadata; use Symfony\Component\Serializer\Mapping\Loader\LoaderInterface; /** * Returns a {@link ClassMetadata}. * * @author Kévin Dunglas */ class ClassMetadataFactory implements ClassMetadataFactoryInterface { use ClassResolverTrait; private $loader; private $cache; private $loadedClasses; public function __construct(LoaderInterface $loader, Cache $cache = null) { $this->loader = $loader; $this->cache = $cache; if (null !== $cache) { @trigger_error(sprintf('Passing a Doctrine Cache instance as 2nd parameter of the "%s" constructor is deprecated since Symfony 3.1. This parameter will be removed in Symfony 4.0. Use the "%s" class instead.', __CLASS__, CacheClassMetadataFactory::class), E_USER_DEPRECATED); } } /** * {@inheritdoc} */ public function getMetadataFor($value) { $class = $this->getClass($value); if (isset($this->loadedClasses[$class])) { return $this->loadedClasses[$class]; } if ($this->cache && ($this->loadedClasses[$class] = $this->cache->fetch($class))) { return $this->loadedClasses[$class]; } $classMetadata = new ClassMetadata($class); $this->loader->loadClassMetadata($classMetadata); $reflectionClass = $classMetadata->getReflectionClass(); // Include metadata from the parent class if ($parent = $reflectionClass->getParentClass()) { $classMetadata->merge($this->getMetadataFor($parent->name)); } // Include metadata from all implemented interfaces foreach ($reflectionClass->getInterfaces() as $interface) { $classMetadata->merge($this->getMetadataFor($interface->name)); } if ($this->cache) { $this->cache->save($class, $classMetadata); } return $this->loadedClasses[$class] = $classMetadata; } /** * {@inheritdoc} */ public function hasMetadataFor($value) { try { $this->getClass($value); return true; } catch (InvalidArgumentException $invalidArgumentException) { // Return false in case of exception } return false; } } __halt_compiler();----SIGNATURE:----UpWafL3Sqyy364ulCn7u8Df7/c4xD3jyHSimitBAqnGoHHTXbiAYL4KN0nmPv7wqY4pB6lGnG1GpUzUnBR+GMXGO2+5NupNp6nGBUa9D8GryJKSBW6n6EEqfphMjuFp3XG+SO7FDwakSikm8UZ9qjz5U56JH05FU6Q7o2V9sANYblNfUassrvasm+LYR+n0Y3gBfu+FervMg1KmArVs6/+6vuNzR5fYpgC7wPuuv6kOUV40VYWVMwmHXQ951DBYQBc8s23xUPZNpdm1C0znpBpUqkTRKegvRxRM+CelbzR2mbYky07qoANBXi/oYLsjt6WCygC6Lxr3ystcQ//T5ifaHgu35hJTaH2pmFC8IlMQB0blfTG8O/jSSl/A+mBBgBhoywqJjvVt7tB6CZyvmYa7bvfSFohOwBgGSAsQE49BZ3gLYp3wCbljqUWxOTgvlpVk8MnOa7R/uvX2pUiFOHxoQxlikEVDvSRihLdatIztp6Uq/eBec65IDvo3tJi9iV9j1uaD8cZvqBYNxqevzKQiH7AmFyOaShj6G3DKrDS4pb97+CjeVbVHRp1P3HSWKANXx9sZQXauuC9fetmrDrI7KMY/yG1uaEiWiJIRom1yimwFey1S8pWAYCTHkpRg7A9C6jRTMyo3oZhW2PSOUGlu6FLy2aMpE+I0vHvLr87o=----ATTACHMENT:----NDgwMDI0MDAwNzkzNzk5MCA1NDg3MDI5MDk5NzMyMzIwIDQ3NDgwODQyNzMxMDU4MDc=