Was sind Events?
Ein Ereignis (englisch event) dient in der Softwaretechnik – bei Entwicklung nach dem ereignisorientieren Programmierparadigma – zur Steuerung des Programmflusses. Das Programm wird nicht linear durchlaufen, sondern es werden spezielle Ereignisbehandlungsroutinen (engl. listener, observer, event handler) immer dann ausgeführt, wenn ein bestimmtes Ereignis auftritt. Ereignisorientierte Programmierung gehört zu den parallelen Programmiertechniken, hat also deren Vor- und Nachteile.
(Quelle: Wikipedia)
Integration in brandbox
...
Codeblock | ||
---|---|---|
| ||
$event = new Event\TestEvent(); $this ->getEventManager() ->getDispatcher() ->dispatch(Event\TestEvent::class, $event) ; |
TestSubscriber
muss von\Symfony\Component\EventDispatcher\EventSubscriberInterface
ableitenDer Subscriber registriert das Event
Event\TestEvent::class
Der Subscriber muss im Ordner
Lib/Subscriber
liegen
...
Codeblock | ||
---|---|---|
| ||
$this ->getEventHandler() ->getDispatcher() ; |
Debugging
Event-Calls können nachverfolgt werden. Um einen Überblick über den Call-Stack zu erhalten aktivieren Sie in der config.php debug.event
.
Codeblock | ||
---|---|---|
| ||
'debug' => [ 'event' => true ] |
Der Call-Stack wird dann im regulären Log dargestellt.
Beispiel
Codeblock |
---|
BRANDBOX.EVENT Event: Brandbox\BaseCore\Base\Edit\Lib\Event\OnPopulateEdit
BRANDBOX.EVENT - Listener: Brandbox\ShopVariant\Ui\Variant\Lib\Subscriber\BaseEditSubscriber::setClassificationId
BRANDBOX.EVENT - Listener: Brandbox\BaseCore\Base\Localization\Lib\Subscriber\BaseEditSubscriber::onPopulateBuilder
BRANDBOX.EVENT - Listener: Brandbox\BaseCore\Base\Localization\Lib\Subscriber\BaseEditSubscriber::onPopulateCollation |
App strukturieren
Die Pfade innerhalb eines Packages sind definiert. Siehe Eine App erstellen