Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Utilisation des events et listeners dans Laravel
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Utilisation des events et listeners dans Laravel

L'Équipe Alphorm Par L'Équipe Alphorm 9 janvier 2025
Partager
Partager

Les développeurs Laravel cherchent souvent à rendre leur code plus modulaire et maintenable.

Sans une structure claire, le code devient difficile à gérer, et les modifications peuvent entraîner des erreurs imprévues.

L’utilisation des events et listeners dans Laravel permet de décentraliser la logique, offrant un code plus flexible et facilement maintenable.

Table de matière
Créer un event Laravel: CommentWasCreatedCréer un listener Laravel: CommentWasCreatedConcepts clés: events & listeners LaravelFAQConclusion

Formation Laravel : Le Guide Complet du Débutant

Initiez-vous à Laravel et réalisez votre première application en toute confiance.

Découvrir cette formation

Créer un event et un listener dans Laravel permet de décentraliser la logique applicative et de rendre le code plus flexible et maintenable. Lorsqu’un commentaire est ajouté, un event est déclenché pour notifier l’auteur de l’article de manière asynchrone. Voici un guide détaillé avec des explications claires et des exemples pour vous aider à mettre en œuvre cette fonctionnalité.

Flux events listeners dans Laravel

Explication du schéma :

  • Ajout d’un commentaire :Lorsqu’un utilisateur ajoute un commentaire.
  • Event :CommentAdded: L’event CommentAdded est déclenché.
  • EventServiceProvider :L’event est écouté par le EventServiceProvider de Laravel.
  • Listener :NotifyAuthor: Le listener NotifyAuthor réagit à l’event en envoyant une notification.
  • Notification envoyée :L’auteur de l’article est notifié de l’ajout du commentaire.
Question : Pourquoi utiliser des events et des listeners ?

Dans Laravel, les events et listeners permettent de découpler la logique des actions et leurs réponses. Cela contribue à rendre le code plus lisible et facilite la maintenance. Voici un exemple pratique : lorsqu’un commentaire est ajouté, un event est déclenché, et un listener exécute une action (comme l’envoi d’une notification).

Astuce Pratique : Utilisez les events et listeners lorsque vous souhaitez exécuter des tâches qui ne doivent pas bloquer l’exécution du flux principal (par exemple, envoyer une notification par e-mail).

Créer un event Laravel: CommentWasCreated

Commencez par créer un event en utilisant la commande artisan suivante :

				
					
 php artisan make:event CommentWasCreated

				
			

Cette commande génère une classe CommentWasCreated située dans App\Events

Dossier Laravel avec un fichier événement

Voici le contenu de la classe générée et des détails sur son rôle :

				
					
 <?php

namespace App\Events;

 use Illuminate\Broadcasting\Channel;
 use Illuminate\Broadcasting\InteractsWithSockets;
 use Illuminate\Broadcasting\PrivateChannel;
 use Illuminate\Foundation\Events\Dispatchable;
 use Illuminate\Queue\SerializesModels;
 use App\Models\Comment;

 class CommentWasCreated
 {
     use Dispatchable;
     use InteractsWithSockets;
     use SerializesModels;
     public Comment $comment;
     /**
     * Create a new event instance.
     *
     * @return void
     */
     public function __construct(Comment $comment)
     {
         $this->comment = $comment;
     }
     /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
     public function broadcastOn()
     {
         return new PrivateChannel('channel-name');
     }
 }

				
			
  • Propriété $comment :Stocke l’objet Comment pour le rendre accessible dans le listener.
  • Trait SerializesModels :Permet la sérialisation des modèles pour les passer dans une file d’attente, garantissant la persistance des données.
  • Méthode broadcastOn :Retourne un canal privé pour la diffusion de l’event (utile si vous utilisez la diffusion).
Infos : Vous pouvez modifier broadcastOn() si vous souhaitez que l’event soit transmis sur un canal spécifique pour des fonctionnalités en temps réel.

Ci-dessous, un schéma simplifié montre comment l’event interagit avec d’autres composants de votre application.

Diagramme des events et listeners Laravel

Créer un listener Laravel: CommentWasCreated

Créez un listener qui écoute l’ event CommentWasCreated avec la commande suivante :

				
					
 php artisan make:listener CommentWasCreated

				
			

Cela génère la classe CommentWasCreated dans App\Listeners.

Aperçu des événements et listeners Laravel

Voici le contenu de cette classe :

				
					
 <?php

namespace App\Listeners;

 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Queue\InteractsWithQueue;
 use App\Events\CommentWasCreated as CommentEvent;
 use App\Notifications\NewComment;

 class CommentWasCreated implements ShouldQueue
 {
     /**
     * Create the event listener.
     *
     * @return void
     */
     public function __construct()
     {
         //
     }
     /**
     * Handle the event.
     *
     * @param  CommentEvent  $event
     * @return void
     */
     public function handle(CommentEvent $event)
     {
         // Envoi de la notification à l'auteur de l'article
     }
 }

				
			

Explications :

  • Le namespace `App\Listeners` organise cette classe dans le dossier des listeners de l’application.
  • ` ShouldQueue` est utilisé pour indiquer que ce listener doit être exécuté en arrière-plan, améliorant les performances de l’application.
  • `InteractsWithQueue ` ajoute des méthodes pour interagir avec la file d’attente si nécessaire.
  • `CommentEvent` est l’événement que ce listener écoute, contenant les données du commentaire créé.
  • `NewComment` est une classe de notification qui sera utilisée pour notifier l’auteur de l’article
  • La classe `CommentWasCreated` implémente `ShouldQueue`, ce qui permet l’exécution asynchrone.
  • Le constructeur est vide mais peut être utilisé pour initialiser des propriétés si besoin.
  • La méthode `handle` reçoit l’événement `CommentEvent` et contient la logique d’envoi de notification.
  • Le commentaire dans `handle` indique où ajouter le code pour envoyer la notification à l’auteur de l’article.
Erreur Courante : Assurez-vous que le NewComment existe et qu’il est correctement configuré pour éviter les erreurs de type Class not found.

Concepts clés: events & listeners Laravel

Concept
Description
Event
Action ou changement dans l’application
Listener
Classe qui réagit à un event
ShouldQueue
Permet l’exécution asynchrone
Notification
Méthode pour informer l’utilisateur

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Pourquoi utiliser des events et listeners dans Laravel?
Utiliser des events et listeners dans Laravel permet de séparer la logique des actions de leurs réponses. Cela rend le code plus lisible et facilite la maintenance. Par exemple, lorsqu’un commentaire est ajouté, un event est déclenché et un listener exécute une action, comme envoyer une notification. Cette approche décentralise la logique, assurant ainsi une meilleure organisation du code.
Comment créer un event dans Laravel?
Pour créer un event dans Laravel, utilisez la commande artisan `php artisan make:event CommentWasCreated`. Cette commande génère une classe d’event qui pourra être déclenchée lors d’actions spécifiques, comme l’ajout d’un commentaire. L’event hérite de traits tels que `Dispatchable` et `SerializesModels`, facilitant ainsi sa gestion et son interaction avec d’autres parties de l’application.
Comment créer un listener pour un event dans Laravel?
Pour créer un listener dans Laravel, utilisez la commande artisan `php artisan make:listener CommentWasCreated`. Cette commande génère une classe listener qui réagit à un event spécifique, en exécutant des actions comme l’envoi de notifications. Le listener peut être configuré pour fonctionner en arrière-plan, ce qui est idéal pour les tâches ne devant pas bloquer le flux principal de l’application.
Quels sont les avantages d'exécuter des listeners en arrière-plan dans Laravel?
Exécuter des listeners en arrière-plan dans Laravel améliore les performances globales de l’application. Cela permet de décharger le flux principal des tâches lourdes ou chronophages, comme l’envoi de notifications par e-mail. En implémentant `ShouldQueue`, les listeners peuvent utiliser la file d’attente pour optimiser la gestion des ressources et assurer une réactivité accrue de l’application.
Comment les events et listeners améliorent-ils la flexibilité du code?
Les events et listeners améliorent la flexibilité du code en permettant une séparation nette entre la génération d’un event et sa réponse. Cela signifie que les actions peuvent être modifiées ou étendues sans toucher à la logique principale de l’application. Par exemple, vous pouvez facilement ajouter de nouvelles actions à un listener sans modifier l’event qui le déclenche, ce qui améliore la modularité et la maintenabilité du code.

Conclusion

En utilisant les events et listeners dans Laravel, vous améliorez non seulement la structure de votre code mais aussi sa maintenabilité. Quels autres aspects de Laravel souhaitez-vous approfondir pour optimiser votre développement web?

ÉTIQUETÉ : Laravel
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Utilisation des events et listeners dans Laravel

© Alphorm - Tous droits réservés