Sie müssen sicherstellen, dass Ihre Listener vor der Ausführung der Anwendungslogik definiert sind. Wenn Ereignisse ausgelöst werden, können sie nur von bereits registrierten Listenern abgefangen werden, sie suchen nicht nach neuen.
Bei kleinen Projekten platziere ich meine Hörer in application/start.php
am Ende der Datei. Diese Datei passiert, bevor Ihre Routen ausgeführt werden, und sie dient als eine Art Anwendungskonfigurationsdatei mit einiger Logik. Sie müssen diese Ereignisse am Ende der Datei platzieren, zumindest nachdem die Autoloader-Zuordnungen registriert wurden.
Bei größeren Projekten erstelle ich application/listeners.php
und benötige diese Datei zur besseren Lesbarkeit in application/start.php
.
Hoffe, das hilft!
Sie können auch Klassen definieren, um bestimmte Ereignisse zu behandeln, und dann einen Service Provider verwenden, um sie zu registrieren.
Es folgt ein einfaches Beispiel:
app / NewUserListener.php
Der Listener, der beim Auslösen des Ereignisses aufgerufen wird:
%Vor%app / ListenerServiceProvider.php
Der ServiceProvider - denken Sie daran und fügen Sie dies zur Liste der Service Provider in L4 Config hinzu.
%Vor%Wenn Sie Listener usw. in entsprechend benannten Ordnern organisieren, ist es viel einfacher zu verwalten, wenn Sie später eine Menge Zuhörer haben. Sie können die Listener auch instanziieren und testen, wenn Sie sie auf diese Weise schreiben.