Я создал собственный плагин SwagStartup в Shopware, и он работает, вызывая URL-адрес типа "shopware.project / myDemo".
Затем я попытался определить / использовать подписчика на события в этом плагине, следующий код:
<?php
namespace SwagStartup\Subscriber;
use Enlight\Event\SubscriberInterface;
class RoutingSubscriber implements SubscriberInterface
{
public static function getSubscribedEvents(){
return ['Enlight_Controller_Action_PreDispatch' => 'onPreDispatch'];
}
public function onPreDispatch(\Enlight_Event_EventArgs $args){
die('here!');
}
}
И файл XML: Resources / services.xml:
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="swag_startup.subscriber.routing_subscriber"
class="SwagStartup\Subscriber\RoutingSubscriber">
<tag name="shopware.event_subscriber"/>
</service>
</services>
</container>
Когда я вызывал url, как и раньше, я ожидал увидеть выходные данные функции die (), потому что думал, что событие Enlight_Controller_Action_PreDispatch должно быть перехвачено подписчиком, а функция onPreDispatch () должен был быть вызван - но это был не тот случай.
Что не так? Может кто-нибудь сказать мне?