{"id":24586,"date":"2021-05-21T16:14:00","date_gmt":"2021-05-21T13:14:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24586"},"modified":"2021-10-18T02:40:18","modified_gmt":"2021-10-17T23:40:18","slug":"so-verwenden-sie-laravel-ereignisse-und-listener-in-ihrer-anwendung","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/so-verwenden-sie-laravel-ereignisse-und-listener-in-ihrer-anwendung\/","title":{"rendered":"So verwenden Sie Laravel-Ereignisse und -Listener in Ihrer Anwendung"},"content":{"rendered":"<p>Laravel kommt mit mehreren coolen Features im Kern. Einige von ihnen sind Broadcasting, File Storage, Notifications, Events, etc. Jede dieser integrierten Funktionen hilft Entwicklern, g\u00e4ngige und komplizierte Aufgaben zu vereinfachen.<\/p>\n<p>In diesem Artikel besprechen wir Laravel-Ereignisse, die es uns erm\u00f6glichen, einen Listener f\u00fcr bestimmte Ereignisse zu registrieren, die in der Anwendung auftreten. Mit anderen Worten, ich kann sagen, Benutzer registriert, Bestellung aufgegeben, Produkt hinzugef\u00fcgt, all dies sind die Ereignisse. Und wenn Sie nach diesen Ereignissen eine Aktion ausl\u00f6sen m\u00fcssen, k\u00f6nnen Sie Listener registrieren. Laravel ruft automatisch die Listener auf, die f\u00fcr bestimmte Ereignisse registriert sind.<\/p>\n<p>F\u00fcr unseren Artikel werde ich eine Veranstaltung zur Benutzerregistrierung implementieren. Sobald sich ein Benutzer bei der Anwendung registriert hat, sollte ihm das System eine Willkommens-E-Mail senden. Hier ist die Benutzerregistrierung das Ereignis und das Senden einer Willkommens-E-Mail ein H\u00f6rer.<\/p>\n<p>Sehen wir uns jedoch an, wie Sie Ereignisse und Listener in Ihrer Laravel-Anwendung verwenden.<\/p>\n<h3>Registrieren von Ereignissen und Zuh\u00f6rern in Laravel<\/h3>\n<p>Laravel bietet eine <code>EventServiceProvider<\/code>Datei, in der Sie Ihre Ereignisse und Zuh\u00f6rer registrieren m\u00fcssen. In unserem Fall m\u00fcssen wir ein Ereignis und einen Listener f\u00fcr die Benutzerregistrierung hinzuf\u00fcgen. \u00d6ffnen Sie also die Datei <code>EventServiceProvider.php<\/code>und f\u00fcgen Sie ein <code>UserRegistered<\/code>Ereignis hinzu.<\/p>\n<p><strong>app\/Provider\/EventServiceProvider.php<\/strong><\/p>\n<pre><code>...\n...\nclass EventServiceProvider extends ServiceProvider\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* The event listener mappings for the application.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var array\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0protected $listen = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'AppEventsUserRegistered' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'AppListenersSendWelcomeEmail',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0];<\/code><\/pre>\n<p>Der Benutzer kann diesem Array je nach Bedarf beliebig viele Ereignisse hinzuf\u00fcgen. Als n\u00e4chstes generieren Sie Laravel-Ereignisse, indem Sie den Befehl ausf\u00fchren:<\/p>\n<pre><code>php artisan event:generate<\/code><\/pre>\n<p>Dieser Befehl erstellt die Verzeichnisse &#8218;Events&#8216; und &#8218;Listeners&#8216; im Ordner &#8218;app&#8216;. Im Verzeichnis &#8218;app\/Events&#8216; finden Sie die Datei <code>UserRegistered.php<\/code>. Ebenso befindet sich die <code>SendWelcomeEmail.php<\/code>Datei im Verzeichnis &#8218;app\/Listeners&#8216;.<\/p>\n<h3>Definieren von Ereignissen und Listenern<\/h3>\n<p>Sie sind nun mit dem Boilerplate f\u00fcr Ihr benutzerregistriertes Ereignis fertig. Unser Ziel ist es, dem Benutzer nach der Registrierung eine Willkommens-E-Mail zu senden. Zum Versenden einer E-Mail ben\u00f6tigen wir ein Benutzerobjekt, das die Informationen des Benutzers enth\u00e4lt. F\u00fcr den <code>UserRegistered<\/code>Fall, dass ich ein Benutzerobjekt an seinen Konstruktor \u00fcbergeben habe. Dieses Objekt wird dann an den Listener \u00fcbergeben.<\/p>\n<p><strong>app\/Events\/UserRegistered.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppEvents;\n\u00a0\n....\nuse AppUser;\n\u00a0\nclass UserRegistered\n{\n\u00a0\u00a0\u00a0\u00a0use Dispatchable, InteractsWithSockets, SerializesModels;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public $user;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Create a new event instance.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function __construct(User $user)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;user = $user;\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Der Code, der eine E-Mail an einen Benutzer sendet, wird in die Listener-Datei eingef\u00fcgt. \u00d6ffnen Sie den Listener <code>SendWelcomeEmail<\/code>und schreiben Sie den Code wie folgt.<\/p>\n<p><strong>app\/Listeners\/SendWelcomeEmail.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppListeners;\n\u00a0\n....\nuse Mail;\n\u00a0\nclass SendWelcomeEmail\n{\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Handle the event.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 UserRegistered\u00a0 $event\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function handle(UserRegistered $event)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$data = array('name' =&gt; $event-&gt;user-&gt;name, 'email' =&gt; $event-&gt;user-&gt;email, 'body' =&gt; 'Welcome to our website. Hope you will enjoy our articles');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Mail::send('emails.mail', $data, function($message) use ($data) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;to($data['email'])\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;subject('Welcome to our Website');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$message-&gt;from('noreply@artisansweb.net');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>In der obigen Datei habe ich den Code zum Senden von E-Mails in die <code>handle<\/code>Methode der Listener-Klasse geschrieben. Dies liegt daran, dass die <code>handle<\/code>Methode nach dem Auftreten eines Benutzerregistrierungsereignisses einen Aufruf erh\u00e4lt.<\/p>\n<p>Ich habe auch den ersten Parameter als &#8218;emails.mail&#8216; in der Mail-Methode verwendet. Es bedeutet, dass Sie eine <code>resources\/views\/emails\/mail.blade.php<\/code>Datei erstellen sollten .<\/p>\n<p><strong>mail.blade.php<\/strong><\/p>\n<pre><code>Hi &lt;strong&gt;{{ $name }}&lt;\/strong&gt;,\n\u00a0\n&lt;p&gt;{{ $body }}&lt;\/p&gt;<\/code><\/pre>\n<h3>Rufen Sie endlich das Event auf<\/h3>\n<p>In dieser Phase sind Sie mit Ihrem Ereignis und Ihrem Zuh\u00f6rer fertig. Der letzte Schritt ist das Aufrufen des Ereignisses von der entsprechenden Stelle. Angenommen, Sie verwenden &#8218;UserController&#8216; zum Registrieren eines Benutzers. <code>UserController<\/code>Sie k\u00f6nnen also von der aus die Veranstaltung wie folgt anrufen.<\/p>\n<p><strong>app\/Http\/Controllers\/UserController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\n....\nuse AppEventsUserRegistered;\nuse AppUser;\n\u00a0\nclass UserController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Store a newly created resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = User::create([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; $request-&gt;input('name'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email' =&gt; $request-&gt;input('email'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; bcrypt($request-&gt;input('password')),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ call our event here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0event(new UserRegistered($user));\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $user;\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Wenn sich nun ein Benutzer registriert, ruft der obige Code das Ereignis &#8218;UserRegistered&#8216; auf, das schlie\u00dflich den Listener aufruft. Der Listener sendet dann eine Willkommens-E-Mail an den Benutzer.<\/p>\n<p>Ich hoffe, Sie verstehen, wie Sie Ereignisse und Listener in Ihrer Laravel-Anwendung verwenden. Bitte teilen Sie Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-verwenden-sie-laravel-passport-fuer-die-rest-api-authentifizierung\/\" title=\"So verwenden Sie Laravel Passport f\u00fcr die REST-API-Authentifizierung\" >So verwenden Sie Laravel Passport f\u00fcr die REST-API-Authentifizierung<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/senden-von-e-mails-ueber-den-gmail-smtp-server-in-laravel\/\" title=\"Senden von E-Mails \u00fcber den Gmail-SMTP-Server in Laravel\" >Senden von E-Mails \u00fcber den Gmail-SMTP-Server in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/benutzerregistrierung-und-login-system-in-laravel\/\" title=\"Benutzerregistrierung und Login-System in Laravel\" >Benutzerregistrierung und Login-System in Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chten Sie Laravel-Events und -Listener implementieren? In diesem Artikel besprechen wir, wie man die Laravel-Events und -Listener registriert, definiert und verwendet.<\/p>\n","protected":false},"author":1,"featured_media":22025,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[496],"tags":[845],"class_list":["post-24586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24586"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/22025"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}