vendor/shopware/core/Content/ImportExport/Event/Subscriber/FileDeletedSubscriber.php line 29

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\ImportExport\Event\Subscriber;
  3. use Shopware\Core\Content\ImportExport\Aggregate\ImportExportFile\ImportExportFileEntity;
  4. use Shopware\Core\Content\ImportExport\Aggregate\ImportExportFile\ImportExportFileEvents;
  5. use Shopware\Core\Content\ImportExport\Message\DeleteFileMessage;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityDeletedEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\Messenger\MessageBusInterface;
  9. class FileDeletedSubscriber implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var MessageBusInterface
  13.      */
  14.     private $messageBus;
  15.     public function __construct(MessageBusInterface $messageBus)
  16.     {
  17.         $this->messageBus $messageBus;
  18.     }
  19.     public static function getSubscribedEvents()
  20.     {
  21.         return [ImportExportFileEvents::IMPORT_EXPORT_FILE_DELETED_EVENT => 'onFileDeleted'];
  22.     }
  23.     public function onFileDeleted(EntityDeletedEvent $event): void
  24.     {
  25.         $paths = [];
  26.         foreach ($event->getIds() as $fileId) {
  27.             $paths[] = ImportExportFileEntity::buildPath($fileId);
  28.         }
  29.         $message = new DeleteFileMessage();
  30.         $message->setFiles($paths);
  31.         $this->messageBus->dispatch($message);
  32.     }
  33. }