Maison> cadre php> Laravel> le corps du texte

Découvrons ensemble les événements et les observateurs de Laravel !

藏色散人
Libérer: 2021-08-18 09:01:53
avant
2166 Les gens l'ont consulté

La chronique suivante présentera les événements et les observateurs dans laravel de la colonnetutoriel laravelJ'espère qu'elle sera utile aux amis dans le besoin !

1 : Événements et auditeurs

Événement est un terme relativement large, il peut représenter une action entreprise. Ce qui apparaît avec l'événement est l'écouteur, qui est utilisé pour surveiller ce que vous faites et pour effectuer un traitement ultérieur sur votre comportement.
Le système d'événements constitue un excellent moyen de découpler différents aspects de l'application, car un seul événement peut avoir plusieurs auditeurs indépendants les uns des autres. Par exemple, vous souhaiterez peut-être envoyer une notification à l'utilisateur chaque fois qu'une commande est expédiée. Au lieu de coupler le code de traitement des commandes au code de notification, vous pouvez écrire un événement écoutable.

Événements :
Si le framework Laravel souhaite créer des événements, vous pouvez les créer avec la commande suivante :

php artisan make:event 事件名称
Copier après la connexion

Le fichier sera stocké dans le répertoire app/Events.

Listener :

La création d'un auditeur peut être créée à l'aide de la commande suivante :

php artisan make:listener 监听器名称
Copier après la connexion

Inscription :

Une fois l'événement et l'auditeur créés, ils doivent être combinés. Nous pouvons l'enregistrer auprès du fournisseur de services EventServiceProvider. Comme suit :

protected $listen = [ 事件名称 => [ 监听器名称, . ], ];
Copier après la connexion

Distribution

event(new TestEvent());
Copier après la connexion

Deux : Événements de modèle

Les événements de modèle sont des fonctions supplémentaires ajoutées spécifiquement pour les modèles. Il crée pour nous des événements et des auditeurs correspondants. Lors de l'utilisation d'événements de modèle, nous devons respecter les règles qui nous sont données par le modèle :

  • retrieved : déclenché après l'obtention de l'instance du modèle
  • creating : déclenché avant l'insertion dans la base de données
  • created : déclenché après l'insertion dans la base de données
  • mise à jour : mise à jour vers déclenchée avant la base de données
  • mise à jour : déclenchée après la mise à jour de la base de données
  • sauvegarde : déclenchée avant l'enregistrement dans la base de données (avant l'insertion/la mise à jour, l'insertion et la mise à jour seront déclenchées)
  • saved : déclenchée après enregistrement dans la base de données (après l'insertion/la mise à jour, quel que soit le déclenchement de l'insertion ou de la mise à jour)
  • deleting : déclenché avant la suppression des enregistrements de la base de données
  • deleted : déclenché après la suppression des enregistrements de la base de données
  • restauration : déclenché avant la restauration du logiciel- enregistrements supprimés
  • restaurés : déclenché après la restauration des enregistrements supprimés de manière logicielle

Liaison obligatoire

protected $dispatchesEvents = [ 'saving' => \App\Events\TestEvent::class, // 'updated' => \App\Events\TestEvent::class, ];
Copier après la connexion

3 au niveau du modèle : l'événement observateur

doit être associé à l'auditeur. Lorsqu'il y a plus d'auditeurs, nous devons le faire. les enregistrer et les mettre en œuvre, ce qui sera plus gênant, nous pouvons envisager d'utiliser des observateurs . Si vous écoutez plusieurs événements sur un modèle, vous pouvez utiliser des observateurs pour organiser ces auditeurs dans une classe distincte.

Utilisation des observateurs :

Les observateurs peuvent être créés à l'aide de la commande suivante :

php artisan make:observer
Copier après la connexion

Si vous souhaitez vous associer directement au modèle, vous pouvez également ajouter directement des paramètres à associer au modèle :

php artisan make:observer UserObserver --model=User
Copier après la connexion

Inscription de l'observateur :
Inscrivez-vous

User::observe(UserObserver::class);
Copier après la connexion

dans le prestataire ou inscrivez-vous

public static function booted() { self::observe(UserObserver::class); }
Copier après la connexion

dans le modèle

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:jianshu.com
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!