vendor/shopware/core/Content/Flow/Indexing/FlowIndexerSubscriber.php line 46
<?php declare(strict_types=1);
namespace Shopware\Core\Content\Flow\Indexing;
use Shopware\Core\Framework\App\Event\AppActivatedEvent;
use Shopware\Core\Framework\App\Event\AppDeactivatedEvent;
use Shopware\Core\Framework\App\Event\AppDeletedEvent;
use Shopware\Core\Framework\App\Event\AppInstalledEvent;
use Shopware\Core\Framework\App\Event\AppUpdatedEvent;
use Shopware\Core\Framework\DataAbstractionLayer\Indexing\MessageQueue\IterateEntityIndexerMessage;
use Shopware\Core\Framework\Log\Package;
use Shopware\Core\Framework\Plugin\Event\PluginPostActivateEvent;
use Shopware\Core\Framework\Plugin\Event\PluginPostDeactivateEvent;
use Shopware\Core\Framework\Plugin\Event\PluginPostInstallEvent;
use Shopware\Core\Framework\Plugin\Event\PluginPostUninstallEvent;
use Shopware\Core\Framework\Plugin\Event\PluginPostUpdateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\MessageBusInterface;
/**
* @internal
*/
#[Package('business-ops')]
class FlowIndexerSubscriber implements EventSubscriberInterface
{
public function __construct(private readonly MessageBusInterface $messageBus)
{
}
public static function getSubscribedEvents(): array
{
return [
PluginPostInstallEvent::class => 'refreshPlugin',
PluginPostActivateEvent::class => 'refreshPlugin',
PluginPostUpdateEvent::class => 'refreshPlugin',
PluginPostDeactivateEvent::class => 'refreshPlugin',
PluginPostUninstallEvent::class => 'refreshPlugin',
AppInstalledEvent::class => 'refreshPlugin',
AppUpdatedEvent::class => 'refreshPlugin',
AppActivatedEvent::class => 'refreshPlugin',
AppDeletedEvent::class => 'refreshPlugin',
AppDeactivatedEvent::class => 'refreshPlugin',
];
}
public function refreshPlugin(): void
{
// Schedule indexer to update flows
$this->messageBus->dispatch(new IterateEntityIndexerMessage(FlowIndexer::NAME, null));
}
}