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

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. /**
  13. * @var MetadataReader
  14. */
  15. private $metadataReader;
  16. public function __construct(MetadataReader $metadataReader)
  17. {
  18. $this->metadataReader = $metadataReader;
  19. }
  20. public function collect(Request $request, Response $response, ?\Throwable $exception = null): void
  21. {
  22. $mappings = [];
  23. $uploadableClasses = $this->metadataReader->getUploadableClasses();
  24. foreach ($uploadableClasses as $class) {
  25. $mappings[$class] = $this->metadataReader->getUploadableFields($class);
  26. }
  27. \ksort($mappings);
  28. $this->data = [
  29. 'mappings' => $mappings,
  30. ];
  31. }
  32. public function reset(): void
  33. {
  34. $this->data = [];
  35. }
  36. public function getName(): string
  37. {
  38. return 'vich_uploader.mapping_collector';
  39. }
  40. public function getMappingsCount(): int
  41. {
  42. return \count($this->data['mappings']);
  43. }
  44. public function getMappings(): array
  45. {
  46. return $this->data['mappings'];
  47. }
  48. }