*/ class BlockEventSubscriber extends EntityManagerEventSubscriber { public function __construct(protected FileUploadHandler $fileUpload) { } public function supports(EntityInterface $entity): bool { return $entity instanceof Page; } public function onPreUpdate(EntityManagerEvent $event) { if (!$this->supports($event->getEntity())) { return; } foreach ($event->getEntity()->getBlocks() as $block) { if ($block instanceof FileBlock) { if ($block->getValue() instanceof UploadedFile) { $directory = 'uploads/page/block'; $this->fileUpload->handleForm( $block->getValue(), $directory, function ($filename) use ($block, $directory) { $block->setValue($directory.'/'.$filename); } ); } } } } public function onPreCreate(EntityManagerEvent $event) { return $this->onPreUpdate($event); } }