Quantcast
Viewing all articles
Browse latest Browse all 14594

Neues Plugin-System: Doctrine Model Event Subscriber via services.xml funktioniert nicht

Ich versuche mich gerade am neuen 5.2 Plugin System und möchte mich auf ein Model Update-Event registrieren. Aber scheinbar greift der Listener nicht.

So sieht es bisher in etwa aus:

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="my_id_my_plugin_name.order.listener"
                 class="MyIdMyPlugin\Subscriber\DocumentSubscriber">
            <tag name="doctrine.event_subscriber" event="postPersist" />
        </service>
    </services>
</container>

Subscriber/DocumentSubscriber.php:

class DocumentSubscriber implements EventSubscriber
{
    public function getSubscribedEvents()
    {
        return [
            'Shopware\Models\Order\Order::postUpdate' => 'onOrderUpdate',
        ];
    }

    public function onOrderUpdate(\Enlight_Event_EventArgs $arguments)
    {
        /** @var Order $order */
        $order = $arguments->get('entity');

        /** @var EntityManager $manager */
        $manager = $arguments->get('entityManager');

        echo "<pre>";
        print_r(Debug::dump($order, 3));
        print_r(Debug::dump($manager, 3));
        echo "</pre>";
        exit;
    }
}


Zuerst habe ich es mit mit dem Service Tag

<tag name="shopware.event_subscriber" />

probiert, aber das Doctrine Tag von http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html ist vermutlich bei den Model-Events die richtige Wahl. Trotzdem bekomme ich keine Ausgabe beim Updaten einer Bestellung per API oder übers Backend.

Hat jemand eine Idee?


Viewing all articles
Browse latest Browse all 14594


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>