{"id":24599,"date":"2021-05-21T16:31:00","date_gmt":"2021-05-21T13:31:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24599"},"modified":"2021-10-18T02:14:49","modified_gmt":"2021-10-17T23:14:49","slug":"comment-utiliser-les-evenements-et-les-ecouteurs-laravel-dans-votre-application","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-utiliser-les-evenements-et-les-ecouteurs-laravel-dans-votre-application\/","title":{"rendered":"Comment utiliser les \u00e9v\u00e9nements et les \u00e9couteurs Laravel dans votre application"},"content":{"rendered":"<p>Laravel est livr\u00e9 avec plusieurs fonctionnalit\u00e9s int\u00e9ressantes \u00e0 la base. Certaines d&rsquo;entre elles sont la diffusion, le stockage de fichiers, les notifications, les \u00e9v\u00e9nements, etc. Chacune de ces fonctionnalit\u00e9s int\u00e9gr\u00e9es aide les d\u00e9veloppeurs \u00e0 simplifier les t\u00e2ches courantes et compliqu\u00e9es.<\/p>\n<p>Dans cet article, nous discutons des \u00e9v\u00e9nements Laravel qui nous permettent d&rsquo;enregistrer un \u00e9couteur pour des \u00e9v\u00e9nements sp\u00e9cifiques qui se produisent dans l&rsquo;application. En d&rsquo;autres termes, je peux dire utilisateur enregistr\u00e9, commande pass\u00e9e, produit ajout\u00e9, ce sont tous des \u00e9v\u00e9nements. Et si vous avez besoin de d\u00e9clencher une action apr\u00e8s ces \u00e9v\u00e9nements, vous pouvez enregistrer des \u00e9couteurs. Laravel appelle automatiquement les auditeurs enregistr\u00e9s pour des \u00e9v\u00e9nements sp\u00e9cifiques.<\/p>\n<p>Pour notre article, je vais mettre en place un \u00e9v\u00e9nement pour l&rsquo;enregistrement des utilisateurs. Une fois qu&rsquo;un utilisateur s&rsquo;est inscrit \u00e0 l&rsquo;application, le syst\u00e8me doit lui envoyer un e-mail de bienvenue. Ici, l&rsquo;enregistrement de l&rsquo;utilisateur est l&rsquo;\u00e9v\u00e9nement et l&rsquo;envoi d&rsquo;un e-mail de bienvenue est un auditeur.<\/p>\n<p>Cela dit, voyons comment utiliser les \u00e9v\u00e9nements et les \u00e9couteurs dans votre application Laravel.<\/p>\n<h3>Enregistrement d&rsquo;\u00e9v\u00e9nements et d&rsquo;auditeurs dans Laravel<\/h3>\n<p>Laravel fournit un <code>EventServiceProvider<\/code>fichier o\u00f9 vous devez enregistrer vos \u00e9v\u00e9nements et vos auditeurs. Dans notre cas, nous devons ajouter un \u00e9v\u00e9nement et un \u00e9couteur pour l&rsquo;enregistrement de l&rsquo;utilisateur. Alors, ouvrez le fichier <code>EventServiceProvider.php<\/code>et ajoutez-y un <code>UserRegistered<\/code>\u00e9v\u00e9nement.<\/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&rsquo;utilisateur peut ajouter autant d&rsquo;\u00e9v\u00e9nements \u00e0 ce tableau en fonction des besoins. Ensuite, g\u00e9n\u00e9rez des \u00e9v\u00e9nements Laravel en ex\u00e9cutant la commande\u00a0:<\/p>\n<pre><code>php artisan event:generate<\/code><\/pre>\n<p>Cette commande cr\u00e9e les r\u00e9pertoires &lsquo;Events&rsquo; et &lsquo;Listeners&rsquo; sous le dossier &lsquo;app&rsquo;. Dans le r\u00e9pertoire &lsquo;app\/Events&rsquo;, vous trouverez le fichier <code>UserRegistered.php<\/code>. De m\u00eame, le <code>SendWelcomeEmail.php<\/code>fichier se trouve dans le r\u00e9pertoire &lsquo;app\/Listeners&rsquo;.<\/p>\n<h3>D\u00e9finition d&rsquo;\u00e9v\u00e9nements et d&rsquo;\u00e9couteurs<\/h3>\n<p>Vous \u00eates maintenant pr\u00eat avec le passe-partout pour votre \u00e9v\u00e9nement enregistr\u00e9 par l&rsquo;utilisateur. Notre objectif est d&rsquo;envoyer un e-mail de bienvenue \u00e0 l&rsquo;utilisateur apr\u00e8s son inscription. Pour envoyer un e-mail, nous avons besoin d&rsquo;un objet utilisateur qui contient les informations de l&rsquo;utilisateur. Dans le <code>UserRegistered<\/code>cas o\u00f9 j&rsquo;ai pass\u00e9 un objet utilisateur \u00e0 son constructeur. Cet objet sera ensuite transmis \u00e0 l&rsquo;auditeur.<\/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>Le code qui envoie un e-mail \u00e0 un utilisateur ira \u00e0 l&rsquo;int\u00e9rieur du fichier d&rsquo;\u00e9coute. Ouvrez l&rsquo;\u00e9couteur <code>SendWelcomeEmail<\/code>et \u00e9crivez le code comme suit.<\/p>\n<p><strong>app\/Auditeurs\/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>Dans le fichier ci-dessus, j&rsquo;ai \u00e9crit le code d&rsquo;envoi d&#8217;email dans la <code>handle<\/code>m\u00e9thode de la classe listener. En effet, la <code>handle<\/code>m\u00e9thode re\u00e7oit un appel apr\u00e8s l&rsquo;occurrence d&rsquo;un \u00e9v\u00e9nement d&rsquo;enregistrement d&rsquo;utilisateur.<\/p>\n<p>J&rsquo;ai \u00e9galement utilis\u00e9 le premier param\u00e8tre comme &#8217;emails.mail&rsquo; dans la m\u00e9thode Mail. Cela signifie que vous devez cr\u00e9er un <code>resources\/views\/emails\/mail.blade.php<\/code>fichier.<\/p>\n<p><strong>mail.lame.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>Appelez enfin l&rsquo;\u00e9v\u00e9nement<\/h3>\n<p>\u00c0 ce stade, vous \u00eates tous ensemble avec votre \u00e9v\u00e9nement et votre auditeur. La derni\u00e8re \u00e9tape consiste \u00e0 appeler l&rsquo;\u00e9v\u00e9nement depuis l&rsquo;endroit appropri\u00e9. Disons que vous utilisez &lsquo;UserController&rsquo; pour enregistrer un utilisateur. Ainsi, \u00e0 partir du <code>UserController<\/code>, vous pouvez appeler l&rsquo;\u00e9v\u00e9nement comme suit.<\/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>D\u00e9sormais, lorsqu&rsquo;un utilisateur est enregistr\u00e9, le code ci-dessus appelle l&rsquo;\u00e9v\u00e9nement &lsquo;UserRegistered&rsquo; qui appelle finalement l&rsquo;\u00e9couteur. L&rsquo;auditeur envoie ensuite un e-mail de bienvenue \u00e0 l&rsquo;utilisateur.<\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez comment utiliser les \u00e9v\u00e9nements et les \u00e9couteurs dans votre application Laravel. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es et suggestions dans la section commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-utiliser-laravel-passport-pour-l-authentification-api-rest\/\" title=\"Comment utiliser Laravel Passport pour l'authentification API REST\" >Comment utiliser Laravel Passport pour l&rsquo;authentification API REST<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/envoi-d-e-mails-via-le-serveur-smtp-de-gmail-dans-laravel\/\" title=\"Envoi d'e-mails via le serveur SMTP de Gmail dans Laravel\" >Envoi d&rsquo;e-mails via le serveur SMTP de Gmail dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/enregistrement-de-l-utilisateur-et-systeme-de-connexion-dans-laravel\/\" title=\"Enregistrement de l'utilisateur et syst\u00e8me de connexion dans Laravel\" >Enregistrement de l&rsquo;utilisateur et syst\u00e8me de connexion dans Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cherchez-vous \u00e0 mettre en \u0153uvre des \u00e9v\u00e9nements et des \u00e9couteurs Laravel\u00a0? Dans cet article, nous expliquons comment enregistrer, d\u00e9finir et utiliser les \u00e9v\u00e9nements et les auditeurs 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":[497],"tags":[844],"class_list":["post-24599","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24599"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24599\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/22025"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}