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?