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

Open in your IDE?
  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 $request, Response $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. }