Wie benutze ich Laravel-Events?

8

Ich möchte benachrichtigt werden, wenn sich ein neuer Benutzer anmeldet. In meinem Controller feuere ich ein Ereignis wie folgt ab.

%Vor%

Wo definiere ich listener ?

%Vor%

Wie weiß die listener , dass ein Ereignis ausgelöst wurde?

    
luckytaxi 13.11.2012, 23:47
quelle

3 Antworten

25

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!

    
William Cahill-Manley 13.11.2012, 23:56
quelle
2

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.

    
Darren Taylor 12.02.2014 19:24
quelle
2

versuchen:

%Vor%

Ссылка

    
Ihab Shoully 26.08.2013 00:45
quelle

Tags und Links

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '325354',
    'url' => 'how-to-use-laravel-events',
];

$_COOKIE = [
    '_csrf-frontend' => 'abe69903a3b4154bbba101628eb44690b9e26c275f868b2119e7df19a37aab63a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"36yItpe-bXsoBCHSSu59CGovLxXGQXHQ";}',
    'advanced-frontend' => 'da823967f5e7906e2f4cda5e2c35032e',
];

$_SESSION = [
    '__flash' => [],
];