© saicle/Shutterstock.com
Eine Einführung in den EventManager in Zend Framework 2

Vor dem Event ist nach dem Event


Der EventManager [1] war eine der größten Neuerungen, die das Zend Framework 2 mit sich brachte. Die Komponente war für die Entwicklung vom ZF2 so wichtig, dass Sie sogar für das ZF1 zurückportiert wurde [2]. Mit dieser neuen Komponente ist es seitdem möglich, nicht nur sehr einfach in den MVC-Prozess einzugreifen, sondern auch eigene Klassen und Services Event-basiert erweitern zu können. Dieser Artikel zeigt verschiedene Einsatzmöglichkeiten anhand von einigen ausgewählten Beispielen auf, die Ihnen Ideen für eigene Umsetzungen bieten sollen.

Damit Sie die Beispiele selbst nachvollziehen können, steht eine Beispielanwendung auf GitHub für Sie bereit [3]. Sie können das Projekt wie folgt klonen (bitte ggf. die Verzeichnisse anpassen) und installieren:

> cd /home/devhost > git clone https://github.com/RalfEggert/phpmagazin.event-manager > cd phpmagazin.event-manager > php composer.phar selfupdate > php composer.phar install > sudo chmod 777 -R data/ 

Danach richten Sie noch einen Virtual Host für die Adresse phpmagazin.event-manager ein, der wie in Listing 1 aussehen könnte. Wenn Sie nun http://­phpmagazin.­event-manager/ in Ihrem Browser aufrufen, sollte die Seite ungefähr wie in Abbildung 1 aussehen. Nun können wir loslegen.

Listing 1

<VirtualHost 127.0.0.1> ServerName phpmagazin.event-manager DocumentRoot /home/devhost/phpmagazin.event-manager/public/ AccessFileName .htaccess SetEnv APPLICATION_ENV development <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory "/home/devhost/phpmagazin.event-manager/public/"> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> </VirtualHost>
eggert_event_1.tif_fmt1.jpgAbb. 1: Aufruf der Beispielanwendung

Zuerst etwas Theorie ...

Bei der ereignisgesteuerten Architektur (Event-driven Architecture) wird die Interaktion von lose gekoppelten Komponenten mithilfe von Ereignissen gesteuert. Dabei fällt den Beobachtern (Observer oder Listener) die Aufgabe zu, den lieben, langen Tag darauf zu warten, dass ein bestimmtes Ereignis angestoßen wird (Trigger an Event). Der Zend\EventManager löst diese Aufgabe und stellt für das Zend Framework 2 die passende Infrastruktur bereit, um in einer Applikation eine ereignisgesteuerte Architektur implementieren zu können.

Dabei stellt das Zend Framework 2 mithilfe des Servicemanagers sicher, dass jedes Objekt immer eine eigene Instanz von Zend\EventManager übergeben bekommt. Jedes Objekt, das das Zend\EventManager\EventManagerAwareInterface impleme...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang