use Symfony\Component\Validator\Exception\NoSuchMetadataException;
use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\ClassMetadataInterface;
-use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
/**
*/
class LazyLoadingMetadataFactory implements MetadataFactoryInterface
{
- /**
- * The loader for loading the class metadata.
- *
- * @var LoaderInterface|null
- */
protected $loader;
-
- /**
- * The cache for caching class metadata.
- *
- * @var CacheInterface|null
- */
protected $cache;
/**
*/
public function getMetadataFor($value)
{
- if (!is_object($value) && !is_string($value)) {
- throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: %s', gettype($value)));
+ if (!\is_object($value) && !\is_string($value)) {
+ throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: %s', \gettype($value)));
}
- $class = ltrim(is_object($value) ? get_class($value) : $value, '\\');
+ $class = ltrim(\is_object($value) ? \get_class($value) : $value, '\\');
if (isset($this->loadedClasses[$class])) {
return $this->loadedClasses[$class];
}
+ if (!class_exists($class) && !interface_exists($class, false)) {
+ throw new NoSuchMetadataException(sprintf('The class or interface "%s" does not exist.', $class));
+ }
+
if (null !== $this->cache && false !== ($metadata = $this->cache->read($class))) {
// Include constraints from the parent class
$this->mergeConstraints($metadata);
return $this->loadedClasses[$class] = $metadata;
}
- if (!class_exists($class) && !interface_exists($class)) {
- throw new NoSuchMetadataException(sprintf('The class or interface "%s" does not exist.', $class));
- }
-
$metadata = new ClassMetadata($class);
if (null !== $this->loader) {
*/
public function hasMetadataFor($value)
{
- if (!is_object($value) && !is_string($value)) {
+ if (!\is_object($value) && !\is_string($value)) {
return false;
}
- $class = ltrim(is_object($value) ? get_class($value) : $value, '\\');
-
- if (class_exists($class) || interface_exists($class)) {
- return true;
- }
+ $class = ltrim(\is_object($value) ? \get_class($value) : $value, '\\');
- return false;
+ return class_exists($class) || interface_exists($class, false);
}
}