custom/plugins/NetiNextCmsElementBuilder/src/Subscriber/PluginLifecycleSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace NetInventors\NetiNextCmsElementBuilder\Subscriber;
  4. use NetInventors\NetiNextCmsElementBuilder\Service\ElementSyncService;
  5. use Shopware\Core\Framework\Plugin\Event\PluginPostActivateEvent;
  6. use Shopware\Core\Framework\Plugin\Event\PluginPostDeactivateEvent;
  7. use Shopware\Core\Framework\Plugin\Event\PluginPostInstallEvent;
  8. use Shopware\Core\Framework\Plugin\Event\PluginPostUninstallEvent;
  9. use Shopware\Core\Framework\Plugin\Event\PluginPostUpdateEvent;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. class PluginLifecycleSubscriber implements EventSubscriberInterface
  12. {
  13.     private ElementSyncService $elementSyncService;
  14.     public function __construct(
  15.         ElementSyncService $elementSyncService
  16.     ) {
  17.         $this->elementSyncService $elementSyncService;
  18.     }
  19.     public static function getSubscribedEvents(): array
  20.     {
  21.         return [
  22.             PluginPostInstallEvent::class    => 'onPluginInstalled',
  23.             PluginPostUninstallEvent::class  => 'onPluginUninstalled',
  24.             PluginPostUpdateEvent::class     => 'onPluginUpdated',
  25.             PluginPostActivateEvent::class   => 'onPluginActivated',
  26.             PluginPostDeactivateEvent::class => 'onPluginDeactivated',
  27.         ];
  28.     }
  29.     public function onPluginActivated(PluginPostActivateEvent $event): void
  30.     {
  31.         $plugin  $event->getPlugin();
  32.         $context $event->getContext()->getContext();
  33.         $this->elementSyncService->syncForPlugin($plugin$context);
  34.     }
  35.     public function onPluginDeactivated(PluginPostDeactivateEvent $event): void
  36.     {
  37.         $plugin $event->getPlugin();
  38.         $this->elementSyncService->disablePluginElements($plugin);
  39.     }
  40.     public function onPluginInstalled(PluginPostInstallEvent $event): void
  41.     {
  42.         $plugin  $event->getPlugin();
  43.         $context $event->getContext()->getContext();
  44.         $this->elementSyncService->syncForPlugin($plugin$context);
  45.     }
  46.     public function onPluginUninstalled(PluginPostUninstallEvent $event): void
  47.     {
  48.         $plugin $event->getPlugin();
  49.         $this->elementSyncService->disablePluginElements($plugin);
  50.     }
  51.     public function onPluginUpdated(PluginPostUpdateEvent $event): void
  52.     {
  53.         $plugin  $event->getPlugin();
  54.         $context $event->getContext()->getContext();
  55.         $this->elementSyncService->syncForPlugin($plugin$context);
  56.     }
  57. }