src/Export/Builder/ExportBuilder.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Export\Builder;
  3. use App\V4\Dev\Exporter\TraceableExporter;
  4. use RuntimeException;
  5. class ExportBuilder implements ExportBuilderInterface
  6. {
  7.     /**
  8.      * @var ExporterInterface[]
  9.      */
  10.     private $exporters;
  11.     /**
  12.      * @param ExporterInterface[] $exporters
  13.      */
  14.     public function __construct(iterable $exporters)
  15.     {
  16.         $this->exporters $exporters;
  17.     }
  18.     /**
  19.      * {@inheritdoc}
  20.      */
  21.     public function getExporter($entitystring $fieldstring $exportType): ExporterInterface
  22.     {
  23.         foreach ($this->exporters as $exporter) {
  24.             if ($exporter instanceof TraceableExporter) {
  25.                 continue;
  26.             }
  27.             if ($exporter->supports($entity$field$exportType)) {
  28.                 return $exporter;
  29.             }
  30.         }
  31.         throw new RuntimeException(sprintf('Builder for field %s not found'$field));
  32.     }
  33. }