Maison > cadre php > Laravel > le corps du texte

Laravel - Gestion des événements

王林
Libérer: 2024-08-27 13:50:26
original
938 Les gens l'ont consulté

Events fournit une implémentation simple d'observateur qui permet à un utilisateur de s'abonner et d'écouter divers événements déclenchés dans l'application Web. Toutes les classes d'événements dans Laravel sont stockées dans le dossier app/Events et les auditeurs sont stockés dans le dossier app/Listeners.

La commande artisanale pour générer des événements et des auditeurs dans votre application Web est présentée ci-dessous −

 php artisan event:generate
Copier après la connexion

Cette commande génère les événements et les auditeurs dans les dossiers respectifs, comme indiqué ci-dessus.

Event Generator

Les événements et les auditeurs constituent un excellent moyen de découpler une application Web, car un événement peut avoir plusieurs auditeurs indépendants. les uns des autres. Le dossier events créé par la commande artisan comprend les deux fichiers suivants : event.php et SomeEvent.php. Ils sont affichés ici −

Event.php

<?php
espace de noms AppEvents ;
Événement de classe abstraite{
   //
}
Copier après la connexion

Comme mentionné ci-dessus, event.php inclut la définition de base de la classe Event et appelle l'espace de noms AppEvents. Veuillez noter que les événements définis par l'utilisateur ou personnalisés sont créés dans ce fichier.

SomeEvent.php

<?php

espace de noms AppEvents ;

utilisez AppEventsEvent ;
utilisez IlluminateQueueSerializesModels ;
utilisez IlluminateContractsBroadcastingShouldBroadcast ;

la classe SomeEvent étend l&#39;événement {
   utilisez SerializesModels ;
   /**      * Créez une nouvelle instance d&#39;événement.
      *
      * @return void
   */
   
   fonction publique __construct() {
      //
   }
   
   /**      * Obtenez les chaînes sur lesquelles l&#39;événement doit être diffusé.
      *
      * @tableau de retour
   */
   
   fonction publique broadcastOn() {
      retour [];
   }
}
Copier après la connexion

Observez que ce fichier utilise la sérialisation pour diffuser des événements dans une application web et que les paramètres nécessaires sont également initialisés dans ce fichier.

Par exemple, si nous devons initialiser la variable order dans le constructeur pour enregistrer un événement, nous pouvons faites-le de la manière suivante −

public function __construct(Order $order) {
   $this->order = $order ;
}
Copier après la connexion

Auditeurs

Les auditeurs gèrent toutes les activités mentionnées dans un événement en cours d'enregistrement. La commande artisanale event:generate crée tous les listeners dans le répertoire app/listeners. Le dossier Listeners comprend un fichier EventListener.php qui contient toutes les méthodes nécessaires à la gestion des auditeurs.

EventListener.php

<?php

espace de noms AppListeners ;

utilisez AppEventsSomeEvent ;
utilisez IlluminateQueueInteractsWithQueue ;
utilisez IlluminateContractsQueueShouldQueue ;

classe EventListener{
   /**      * Créez l&#39;écouteur d&#39;événement.
      *
      * @return void
   */
   
   fonction publique __construct() {
      //
   }

   /**      * Gérer l&#39;événement.
      *
      * @param SomeEvent $événement
      * @return void
   */
   
   handle de fonction publique (SomeEvent $event) {
      //
   }
}
Copier après la connexion

Comme mentionné dans le code, il comprend la fonction handle pour gérer divers événements. Nous pouvons créer différents auditeurs indépendants qui ciblent un seul événement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal