Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\FormBundle\Collector; | |
| use Mautic\FormBundle\Collection\ObjectCollection; | |
| use Mautic\FormBundle\Event\ObjectCollectEvent; | |
| use Mautic\FormBundle\FormEvents; | |
| use Symfony\Component\EventDispatcher\EventDispatcherInterface; | |
| final class ObjectCollector implements ObjectCollectorInterface | |
| { | |
| private ?ObjectCollection $objects = null; | |
| public function __construct( | |
| private EventDispatcherInterface $dispatcher | |
| ) { | |
| } | |
| public function getObjects(): ObjectCollection | |
| { | |
| if (null === $this->objects) { | |
| $this->collect(); | |
| } | |
| return $this->objects; | |
| } | |
| private function collect(): void | |
| { | |
| $event = new ObjectCollectEvent(); | |
| $this->dispatcher->dispatch($event, FormEvents::ON_OBJECT_COLLECT); | |
| $this->objects = $event->getObjects(); | |
| } | |
| } | |