vendor/vich/uploader-bundle/src/DataCollector/MappingCollector.php line 19

  1. <?php
  2. namespace Vich\UploaderBundle\DataCollector;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpKernel\DataCollector\DataCollector;
  6. use Vich\UploaderBundle\Metadata\MetadataReader;
  7. /**
  8.  * @internal
  9.  */
  10. final class MappingCollector extends DataCollector
  11. {
  12.     public function __construct(private readonly MetadataReader $metadataReader)
  13.     {
  14.     }
  15.     public function collect(Request $requestResponse $response, ?\Throwable $exception null): void
  16.     {
  17.         $mappings = [];
  18.         $uploadableClasses $this->metadataReader->getUploadableClasses();
  19.         foreach ($uploadableClasses as $class) {
  20.             $mappings[$class] = $this->metadataReader->getUploadableFields($class);
  21.         }
  22.         \ksort($mappings);
  23.         $this->data = [
  24.             'mappings' => $mappings,
  25.         ];
  26.     }
  27.     public function reset(): void
  28.     {
  29.         $this->data = [];
  30.     }
  31.     public function getName(): string
  32.     {
  33.         return 'vich_uploader.mapping_collector';
  34.     }
  35.     public function getMappingsCount(): int
  36.     {
  37.         return \is_countable($this->data['mappings']) ? \count($this->data['mappings']) : 0;
  38.     }
  39.     public function getMappings(): array
  40.     {
  41.         return $this->data['mappings'];
  42.     }
  43. }