The EventDispatcherExtensions provides a Bridge to the Symfony EventDispatcher Component. The EventDispatcherComponent allows you to add behaviour without changing Payum.
<?php
use Payum\Core\Bridge\Symfony\Extension\EventDispatcherExtension;
/** @var \Payum\Core\Gateway $gateway */
/** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$gateway->addExtension(
new EventDispatcherExtension($eventDispatcher)
);
<?php
use Payum\Core\Bridge\Symfony\Event\ExecuteEvent;
use Payum\Core\Bridge\Symfony\PayumEvents;
/** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$eventDispatcher->addListener(
PayumEvents::GATEWAY_EXECUTE,
function(ExecuteEvent $event) {
// do something
}
);
Name | PayumEvents Constant |
Argument passed to the listener |
---|---|---|
payum.gateway.pre_execute | PayumEvents::GATEWAY_PRE_EXECUTE |
ExecuteEvent |
payum.gateway.execute | PayumEvents::GATEWAY_EXECUTE |
ExecuteEvent |
payum.gateway.post_execute | PayumEvents::GATEWAY_POST_EXECUTE |
ExecuteEvent |
If you use Symfony Full-Stack Framework and the PayumBundle you can add the EventDispatcherExtension via Configuration:
services:
app.payum.extension.event_dispatcher:
class: Payum\Core\Bridge\Symfony\Extension\EventDispatcherExtension
public: true
arguments: ["@event_dispatcher"]
tags:
- { name: payum.extension, all: true, prepend: false }
And add the listener:
services:
app.payum.listener.render_template:
class: AppBundle\EventListener\RenderTemplateListener
tags:
- { name: kernel.event_listener, event: payum.gateway.execute }
Payum is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and our customers. If you'd like to join them, please consider: