Deprecated: Constant E_STRICT is deprecated in /home/normanv/www/annuairepro/vendor/symfony/error-handler/ErrorHandler.php on line 58

Deprecated: Constant E_STRICT is deprecated in /home/normanv/www/annuairepro/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler

vendor/vich/uploader-bundle/src/Metadata/Driver/XmlDriver.php line 51

Open in your IDE?
  1. <?php
  2. namespace Vich\UploaderBundle\Metadata\Driver;
  3. use Metadata\ClassMetadata as JMSClassMetadata;
  4. use Metadata\Driver\AbstractFileDriver;
  5. use Symfony\Component\Config\Util\XmlUtils;
  6. use Vich\UploaderBundle\Metadata\ClassMetadata;
  7. /**
  8.  * @author Kévin Gomez <contact@kevingomez.fr>
  9.  * @author Konstantin Myakshin <koc-dp@yandex.ru>
  10.  */
  11. class XmlDriver extends AbstractFileDriver
  12. {
  13.     /**
  14.      * @param string $file
  15.      */
  16.     protected function loadMetadataFromFile(\ReflectionClass $class$file): ?JMSClassMetadata
  17.     {
  18.         $elem XmlUtils::loadFile($file);
  19.         $elem \simplexml_import_dom($elem);
  20.         $className $this->guessClassName($file$elem$class);
  21.         $classMetadata = new ClassMetadata($className);
  22.         $classMetadata->fileResources[] = $file;
  23.         $classMetadata->fileResources[] = $class->getFileName();
  24.         foreach ($elem->children() as $field) {
  25.             $fieldMetadata = [
  26.                 'mapping' => (string) $field->attributes()->mapping,
  27.                 'propertyName' => (string) $field->attributes()->name,
  28.                 'fileNameProperty' => (string) $field->attributes()->filename_property,
  29.                 'size' => (string) $field->attributes()->size,
  30.                 'mimeType' => (string) $field->attributes()->mime_type,
  31.                 'originalName' => (string) $field->attributes()->original_name,
  32.                 'dimensions' => null === $field->attributes()->dimensions null : (string) $field->attributes()->dimensions,
  33.             ];
  34.             $classMetadata->fields[(string) $field->attributes()->name] = $fieldMetadata;
  35.         }
  36.         return $classMetadata;
  37.     }
  38.     protected function getExtension(): string
  39.     {
  40.         return 'xml';
  41.     }
  42.     protected function guessClassName(string $file\SimpleXMLElement $elem\ReflectionClass $class null): string
  43.     {
  44.         if (null === $class) {
  45.             return (string) $elem->attributes()->class;
  46.         }
  47.         if ($class->name !== (string) $elem->attributes()->class) {
  48.             throw new \RuntimeException(\sprintf('Expected metadata for class %s to be defined in %s.'$class->name$file));
  49.         }
  50.         return $class->name;
  51.     }
  52. }