{"id":24790,"date":"2021-05-21T16:35:00","date_gmt":"2021-05-21T13:35:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24790"},"modified":"2021-10-18T03:11:38","modified_gmt":"2021-10-18T00:11:38","slug":"come-utilizzare-gli-eventi-e-gli-ascoltatori-di-laravel-nella-tua-applicazione","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/come-utilizzare-gli-eventi-e-gli-ascoltatori-di-laravel-nella-tua-applicazione\/","title":{"rendered":"Come utilizzare gli eventi e gli ascoltatori di Laravel nella tua applicazione"},"content":{"rendered":"<p>Laravel \u00e8 dotato di diverse funzioni interessanti al suo interno. Alcuni di questi sono Broadcasting, File Storage, Notifiche, Eventi, ecc. Ognuna di queste funzionalit\u00e0 integrate aiuta gli sviluppatori a semplificare le attivit\u00e0 comuni e complicate.<\/p>\n<p>In questo articolo, discutiamo di Laravel Events che ci consentono di registrare un listener per eventi specifici che si verificano nell&#8217;applicazione. In altre parole, posso dire utente registrato, ordine effettuato, prodotto aggiunto, tutti questi sono gli eventi. E se hai bisogno di attivare qualche azione dopo questi eventi puoi registrare gli ascoltatori. Laravel chiama automaticamente gli ascoltatori registrati per eventi specifici.<\/p>\n<p>Per il nostro articolo, implementer\u00f2 un evento per la registrazione degli utenti. Una volta che un utente si \u00e8 registrato all&#8217;applicazione, il sistema dovrebbe inviargli un&#8217;e-mail di benvenuto. Qui la registrazione dell&#8217;utente \u00e8 l&#8217;evento e l&#8217;invio di un&#8217;e-mail di benvenuto \u00e8 un ascoltatore.<\/p>\n<p>Detto questo, vediamo come utilizzare eventi e listener nella tua applicazione Laravel.<\/p>\n<h3>Registrazione di eventi e ascoltatori in Laravel<\/h3>\n<p>Laravel fornisce <code>EventServiceProvider<\/code>file in cui \u00e8 necessario registrare i propri eventi e ascoltatori. Nel nostro caso dobbiamo aggiungere un evento e un listener per la registrazione dell&#8217;utente. Quindi, apri il file <code>EventServiceProvider.php<\/code>e aggiungi l&#8217; <code>UserRegistered<\/code>evento al suo interno.<\/p>\n<p><strong>app\/Providers\/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>L&#8217;utente pu\u00f2 aggiungere tanti eventi a questo array a seconda delle esigenze. Quindi, genera eventi Laravel eseguendo il comando:<\/p>\n<pre><code>php artisan event:generate<\/code><\/pre>\n<p>Questo comando crea le directory &quot;Eventi&quot; e &quot;Ascoltatori&quot; nella cartella &quot;app&quot;. All&#8217;interno della directory &#8216;app\/Events&#8217; troverai il file <code>UserRegistered.php<\/code>. Allo stesso modo, il <code>SendWelcomeEmail.php<\/code>file si trova nella directory &quot;app\/Listeners&quot;.<\/p>\n<h3>Definizione di eventi e ascoltatori<\/h3>\n<p>Ora sei pronto con il boilerplate per il tuo evento registrato dall&#8217;utente. Il nostro obiettivo \u00e8 inviare un&#8217;e-mail di benvenuto all&#8217;utente dopo la registrazione. Per inviare un&#8217;e-mail abbiamo bisogno di un oggetto utente che contenga le informazioni dell&#8217;utente. Nel <code>UserRegistered<\/code>caso in cui ho passato un oggetto utente al suo costruttore. Questo oggetto passer\u00e0 quindi all&#8217;ascoltatore.<\/p>\n<p><strong>app\/Eventi\/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>Il codice che invia un&#8217;email a un utente andr\u00e0 all&#8217;interno del file listener. Apri listener <code>SendWelcomeEmail<\/code>e scrivi il codice come segue.<\/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>Nel file sopra, ho scritto il codice per l&#8217;invio di email nel <code>handle<\/code>metodo della classe listener. Questo perch\u00e9 il <code>handle<\/code>metodo riceve una chiamata dopo il verificarsi di un evento di registrazione dell&#8217;utente.<\/p>\n<p>Ho anche usato il primo parametro come &#8216;emails.mail&#8217; nel metodo Mail. Significa che dovresti creare un <code>resources\/views\/emails\/mail.blade.php<\/code>file.<\/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>Chiama finalmente l&#8217;evento<\/h3>\n<p>A questo punto, tutto pronto con il tuo evento e ascoltatore. L&#8217;ultimo passaggio \u00e8 chiamare l&#8217;evento dal luogo appropriato. Supponiamo che tu stia utilizzando &quot;UserController&quot; per registrare un utente. Quindi dal <code>UserController<\/code>, puoi chiamare l&#8217;evento come segue.<\/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>Ora, quando un utente si registra, il codice sopra d\u00e0 una chiamata all&#8217;evento &quot;UserRegistered&quot; che alla fine chiama l&#8217;ascoltatore. L&#8217;ascoltatore invia quindi un&#8217;e-mail di benvenuto all&#8217;utente.<\/p>\n<p>Spero che tu capisca come utilizzare eventi e listener nella tua applicazione Laravel. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-utilizzare-laravel-passport-per-l-autenticazione-api-rest\/\" title=\"Come utilizzare Laravel Passport per l'autenticazione API REST\" >Come utilizzare Laravel Passport per l&#8217;autenticazione API REST<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/invio-di-e-mail-tramite-il-server-smtp-di-gmail-in-laravel\/\" title=\"Invio di e-mail tramite il server SMTP di Gmail in Laravel\" >Invio di e-mail tramite il server SMTP di Gmail in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/sistema-di-registrazione-e-accesso-utente-in-laravel\/\" title=\"Sistema di registrazione e accesso utente in Laravel\" >Sistema di registrazione e accesso utente in Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stai cercando di implementare eventi e ascoltatori Laravel? In questo articolo discutiamo come registrare, definire e utilizzare gli eventi e gli ascoltatori di Laravel.<\/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":[500],"tags":[846],"class_list":["post-24790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24790"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24790\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/22025"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}