custom/plugins/NetzpBlog6/src/SeoUrlRoute/BlogPostUpdater.php line 35

  1. <?php declare(strict_types=1);
  2. namespace NetzpBlog6\SeoUrlRoute;
  3. use Shopware\Core\Content\Seo\SeoUrlUpdater;
  4. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityDeletedEvent;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class BlogPostUpdater implements EventSubscriberInterface
  8. {
  9.     public function __construct(private readonly SeoUrlUpdater $seoUrlUpdater)
  10.     {
  11.     }
  12.     public static function getSubscribedEvents(): array
  13.     {
  14.         return [
  15.             's_plugin_netzp_blog.written' => 'blogPostWritten',
  16.             's_plugin_netzp_blog.deleted' => 'blogPostDeleted',
  17.             BlogPostIndexerEvent::class   => 'handleIndexerEvent'
  18.         ];
  19.     }
  20.     public function blogPostWritten(EntityWrittenEvent $event)
  21.     {
  22.         $this->seoUrlUpdater->update(BlogPostSeoUrlRoute::ROUTE_NAME$event->getIds());
  23.     }
  24.     public function blogPostDeleted(EntityDeletedEvent $event)
  25.     {
  26.         $this->seoUrlUpdater->update(BlogPostSeoUrlRoute::ROUTE_NAME$event->getIds());
  27.     }
  28.     public function handleIndexerEvent(BlogPostIndexerEvent $event)
  29.     {
  30.         $this->seoUrlUpdater->update(BlogPostSeoUrlRoute::ROUTE_NAME$event->getIds());
  31.     }
  32. }