亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table des matières
Que sont les événements et les auditeurs?
étape 1: Générez un événement et un auditeur
Créer l'événement
Créer l'auditeur
étape 2: Définissez la classe d'événements
étape 3: écrivez la logique de l'auditeur
étape 4: Enregistrez l'événement et les auditeurs
étape 5: Envoyez l'événement
Facultatif: découverte d'événements
Meilleures pratiques
Résumé
Maison cadre php Laravel Tutoriel des événements et des auditeurs de Laravel

Tutoriel des événements et des auditeurs de Laravel

Jul 29, 2025 am 01:10 AM
php laravel

Créer des événements et des auditeurs: utilisez la commande Artisan pour générer des événements conformés par l'utilisateur et les écouteurs SendWelcomeMail et LogUserRegistration; 2. Définir les classes d'événements: injecter des instances utilisateur dans le constructeur conforme à l'utilisateur pour les écouteurs à accéder; 3. écrivez la logique de l'écoute: SendWelcomeMail envoie des e-mails bienvenus et les enregistrements de loguser d'enregistrement des journaux d'enregistrement des utilisateurs; 4. Enregistrer les événements et les auditeurs: Bind Events and Audivers in the $ écouter la table d'écoute de EventServiceProvider; 5. Distribuez les événements: une fois l'utilisateur enregistré, l'événement conforme de l'utilisateur est déclenché via Event () ou Event :: Dispatch () pour faire en sorte que l'écouteur s'exécute automatiquement; 6. Découverte de l'événement automatique Activer Activer: Définir les Discovevents pour retourner True et exécuter la commande Event: Cache pour enregistrer automatiquement l'auditeur; 7. Meilleures pratiques: gardez la responsabilité unique de l'auditeur et les taches qui prennent du temps utilisent l'interface SouftQueue pour implémenter le traitement des files d'attente pour éviter d'écrire une logique complexe dans les événements. Ce mode améliore la maintenabilité et l'évolutivité des applications en découplant la logique commerciale et convient à la notification, à l'exploitation forestière, à l'analyse et à d'autres scénarios.

Tutoriel des événements et des auditeurs de Laravel

Les événements et les auditeurs de Laravel sont un moyen puissant de rendre votre application plus modulaire et maintenue en découplant les actions du code qui les déclenche. Au lieu d'écrire une logique longue et étroitement couplée dans vos contr?leurs ou modèles, vous pouvez envoyer des événements et laisser les auditeurs y réagir. Ce tutoriel vous guide à travers la configuration et l'utilisation d'événements et d'auditeurs à Laravel avec un exemple pratique.

Tutoriel des événements et des auditeurs de Laravel

Que sont les événements et les auditeurs?

  • événement : quelque chose qui s'est produit dans votre application (par exemple, un utilisateur enregistré).
  • écouteur : une classe qui réagit à cet événement (par exemple, envoyez un e-mail de bienvenue, activité de journal).

Ce modèle suit le modèle de l'observateur , permettant à une partie de votre application d'en informer les autres sans savoir qui écoute.


étape 1: Générez un événement et un auditeur

Laravel facilite la création d'événements et d'auditeurs à l'aide de commandes d'artisan.

Tutoriel des événements et des auditeurs de Laravel

Disons que nous voulons envoyer un e-mail de bienvenue et enregistrer l'inscription des utilisateurs.

Créer l'événement

 PHP Artisan Mak

Cela crée un fichier: app/Events/UserRegistered.php

Tutoriel des événements et des auditeurs de Laravel

Créer l'auditeur

 PHP Artisan Mak
PHP Artisan MADE: LOVIEUR LOGUSERRESTIONS --EVENT = USERREGISTRé

Cela crée:

  • app/Listeners/SendWelcomeEmail.php
  • app/Listeners/LogUserRegistration.php

Vous pouvez également créer des auditeurs sans spécifier l'événement et les cabler manuellement plus tard.


étape 2: Définissez la classe d'événements

Ouvrir app/Events/UserRegistered.php . Cela devrait ressembler à ceci:

 <? Php

Namespace App \ Events;

Utilisez App \ Models \ User;
Utiliser illuminate \ Broadcasting \ Channel;
Utiliser illuminate \ Broadcasting \ InteractWithSockets;
Utiliser illuminate \ Broadcasting \ PresencECHANnel;
Utiliser illuminate \ Broadcasting \ privateChannel;
Utiliser illuminate \ contracts \ Broadcasting \ aitbroadcast;
Utiliser illuminate \ Foundation \ Events \ Dispatchable;
Utiliser illuminate \ queue \ serializesModels;

classe conforme à l&#39;utilisateur
{
    Utiliser la répartition, interactive avec des billets, serializesModels;

    public $ utilisateur;

    fonction publique __construct (utilisateur de l&#39;utilisateur)
    {
        $ this-> user = $ utilisateur;
    }

    fonction publique Broadcaston ()
    {
        retourner new privatechannel (?canal-name?);
    }
}

Nous passons le modèle $user à l'événement afin que les auditeurs puissent y accéder.


étape 3: écrivez la logique de l'auditeur

Ouvrez app/Listeners/SendWelcomeEmail.php :

 <? Php

Namespace App \ auditeurs;

Utilisez App \ Events \ Userregistered;
Utiliser illuminate \ support \ FACADES \ Mail;
Utilisez App \ Mail \ WelvelEmail;

Classe SendwelcomeMail
{
    Poignée de la fonction publique (événement $ enregistré par l&#39;utilisateur)
    {
        Mail :: to ($ event-> user-> e-mail) -> envoyer (new WelcomeEmail ($ event-> utilisateur));
    }
}

Assurez-vous que vous avez un WelcomeEmail Mailable:

 PHP Artisan Make: Mail WeldenEmail

De même, pour l'exploitation forestière:

 <? Php

Namespace App \ auditeurs;

Utilisez App \ Events \ Userregistered;
Utiliser illuminate \ support \ FACADES \ Log;

Enregistrement de la classe
{
    Poignée de la fonction publique (événement $ enregistré par l&#39;utilisateur)
    {
        Journal :: info (&#39;nouvel utilisateur enregistré:&#39;. $ Event-> utilisateur-> e-mail);
    }
}

étape 4: Enregistrez l'événement et les auditeurs

app/Providers/EventServiceProvider.php .

Dans le tableau $listen , mappez l'événement à ses auditeurs:

 protégé $ écouter = [
    &#39;App \ events \ userregistered&#39; => [
        &#39;App \ auditeurs \ sendWelcomeMail&#39;,
        ?App \ auditeurs \ loguser d&#39;enregistrement?,
    ],
]]

Cela indique à Laravel quels auditeurs devraient s'exécuter lors de l' UserRegistered .

Après avoir apporté des modifications ici, courez:

 PHP Artisan Event: Cache

(pour la production; non requis dans le développement local)


étape 5: Envoyez l'événement

Maintenant, déclenchez l'événement à partir de votre contr?leur ou modèle.

Dans votre RegisterController ou partout où l'inscription des utilisateurs se produit:

 Utilisez App \ Events \ Userregistered;
Utiliser illuminate \ support \ FACADES \ Event;

// après la création de l&#39;utilisateur
événement (nouvel utilisateur Inscrit ($ user));

// ou utiliser la fa?ade de l&#39;événement
Event :: Dispatch (New UserRegistered ($ user));

Exemple dans une méthode de contr?leur:

 Registre des fonctions publiques (demande $ demande)
{
    $ user = user :: create ($ request-> valided ());

    événement (nouvel utilisateur Inscrit ($ user));

    return redirect (&#39;/ dashboard&#39;);
}

Lorsque cela s'exécute, les deux auditeurs s'exécuteront.


Facultatif: découverte d'événements

Si vous ne souhaitez pas enregistrer manuellement des événements dans EventServiceProvider , Laravel peut les découverter automatiquement.

Activez-le dans EventServiceProvider :

 La fonction publique devrait-on recouverte ()
{
    Retour Vrai;
}

Laravel scannera les paires de répertoire Listeners et d'auto-inscripteur-référencement en fonction de la méthode handle() .

Ensuite, vous n'avez pas besoin de les énumérer dans $listen .

Courir:

 PHP Artisan Event: Cache

Meilleures pratiques

  • Gardez les auditeurs concentrés: un travail par auditeur.
  • Utilisez des auditeurs de filets pour des taches lentes (comme l'envoi de courriels):
 Classe SendwelcomeMail implémente SouftQueue
{
    Utilisez la queregue;
}

Assurez-vous que votre auditeur utilise le trait Queueable et met en ?uvre ShouldQueue .

  • évitez la logique lourde dans les événements; Utilisez-les juste pour signaler.

Résumé

Les événements et les auditeurs vous aident à rédiger des applications Laravel plus propres et plus évolutives en séparant les préoccupations. Vous avez maintenant:

  • Créé un événement ( UserRegistered )
  • Fait des auditeurs ( SendWelcomeEmail , LogUserRegistration )
  • Les enregistrés dans EventServiceProvider
  • Jeté l'événement de votre code

Ce modèle est idéal pour la journalisation d'audit, les notifications, l'analyse, etc.

Fondamentalement, si quelque chose se passe et que d'autres parties de votre application doivent savoir - utiliser des événements.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Au-delà de la pile de lampe: le r?le de PHP dans l'architecture d'entreprise moderne Au-delà de la pile de lampe: le r?le de PHP dans l'architecture d'entreprise moderne Jul 27, 2025 am 04:31 AM

PhpisstillRelevantinmodernerterpriseenvironments.1.modernPhp (7.xand8.x) offre des performances, des stricts, un jitcompilation, et modernsyntax, rendant la main

Construire des microservices résilients avec PHP et Rabbitmq Construire des microservices résilients avec PHP et Rabbitmq Jul 27, 2025 am 04:32 AM

Pour construire un microservice PHP flexible, vous devez utiliser RabbitMQ pour obtenir une communication asynchrone, 1. Découplez le service via des files d'attente de messages pour éviter les défaillances en cascade; 2. Configurer des files d'attente persistantes, des messages persistants, une confirmation de libération et un ACK manuel pour assurer la fiabilité; 3. Utilisez des échecs de traitement de la sécurité de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente; 4. Utilisez des outils tels que SuperVisord pour protéger les processus de consommation et permettre des mécanismes de battements cardiaques pour assurer la santé des services; et finalement réaliser la capacité du système à opérer en continu en échecs.

Création d'environnements Docker prêts pour la production pour PHP Création d'environnements Docker prêts pour la production pour PHP Jul 27, 2025 am 04:32 AM

L'utilisation de l'image de base PHP correcte et la configuration d'un environnement Docker sécurisé et optimisé sont la clé pour obtenir la production prête. 1. Sélectionnez PHP: 8.3-FPM-Alpine comme image de base pour réduire la surface d'attaque et améliorer les performances; 2. Désactiver les fonctions dangereuses via PHP.ini personnalisé, désactiver l'affichage des erreurs et activer Opcache et Jit pour améliorer la sécurité et les performances; 3. Utilisez Nginx comme proxy inverse pour restreindre l'accès aux fichiers sensibles et transférer correctement les demandes PHP à PHP-FPM; 4. Utilisez des images d'optimisation en plusieurs étapes pour supprimer les dépendances de développement et configurez les utilisateurs non racinaires pour exécuter des conteneurs; 5. Supervisord facultatif pour gérer plusieurs processus tels que Cron; 6. Vérifiez qu'aucune fuite d'informations sensibles avant le déploiement

Tigne de performance de cartographie relationnelle d'objet (ORM) dans PHP Tigne de performance de cartographie relationnelle d'objet (ORM) dans PHP Jul 29, 2025 am 05:00 AM

évitez N 1 Problèmes de requête, réduisez le nombre de requêtes de base de données en chargeant à l'avance des données associées; 2. Sélectionnez uniquement les champs requis pour éviter de charger des entités complètes pour enregistrer la mémoire et la bande passante; 3. Utilisez raisonnablement les stratégies de cache, telles que le cache secondaire de la doctrine ou les résultats de requête à haute fréquence de cache de Doctrine; 4. Optimisez le cycle de vie de l'entité et appelez régulièrement () pour libérer la mémoire pour empêcher le débordement de la mémoire; 5. Assurez-vous que l'indice de base de données existe et analysez les instructions SQL générées pour éviter les requêtes inefficaces; 6. Désactiver le suivi automatique des changements dans les scénarios où les modifications ne sont pas nécessaires et utilisez des tableaux ou des modes légers pour améliorer les performances. L'utilisation correcte de l'ORM nécessite de combiner la surveillance SQL, la mise en cache, le traitement par lots et l'optimisation appropriée pour garantir les performances de l'application tout en maintenant l'efficacité du développement.

Construire des objets immuables en PHP avec des propriétés en lecture Construire des objets immuables en PHP avec des propriétés en lecture Jul 30, 2025 am 05:40 AM

ReadonlypropertiesInphp8.2CanlybeassignedonceinthestrustructoratDeclarationandcannotBemodifiedAfterward, applicationmutabilityaThelanguageLevel.2.Toachievedeep-immutability, webutableTypeSlikEarrayinArrayobjectorUSustomymutability, webutilletypeslikearraysinarrayobjectoruseseCustomMutabeColEctionSucha.

La révolution sans serveur: déploiement des applications PHP évolutives avec BREF La révolution sans serveur: déploiement des applications PHP évolutives avec BREF Jul 28, 2025 am 04:39 AM

BREF permet aux développeurs PHP de créer des applications évolutives et rentables sans gérer les serveurs. 1.BREF apporte PHP à Awslambda en fournissant une couche d'exécution PHP optimisée, prend en charge PHP8.3 et d'autres versions, et s'intègre de manière transparente à des frameworks tels que Laravel et Symfony; 2. Les étapes de déploiement incluent: l'installation de BREF à l'aide de composer, configurer Serverless.yml pour définir des fonctions et des événements, tels que les points de terminaison HTTP et les commandes artisanales; 3. Exécutez la commande ServerlessDeploy pour terminer le déploiement, configurez automatiquement Apigeway et générez des URL d'accès; 4. Pour les restrictions de lambda, BREF fournit des solutions.

Intégration de PHP aux modèles d'apprentissage automatique Intégration de PHP aux modèles d'apprentissage automatique Jul 28, 2025 am 04:37 AM

UseArestapitobridgePhpandmlModelsByrunningTheModelinpythonviaflaskorfastapiandCallingitfrompsingCurlorBuzzle.2.Runpythonscripts est ventilateur

Python Vérifiez si la clé existe dans l'exemple du dictionnaire Python Vérifiez si la clé existe dans l'exemple du dictionnaire Jul 27, 2025 am 03:08 AM

Il est recommandé d'utiliser le mot-clé dans pour vérifier si une clé existe dans le dictionnaire, car elle est concise, efficace et très lisible; 2. Il n'est pas recommandé d'utiliser la méthode get () pour déterminer si la clé existe, car elle sera mal jugée lorsque la clé existe mais que la valeur n'est aucune; 3. Vous pouvez utiliser la méthode Keys (), mais elle est redondante, car par défaut pour vérifier la clé; 4. Lorsque vous devez obtenir une valeur et que la clé attendue existe généralement, vous pouvez utiliser Try-Except pour attraper l'exception de Keyerror. La méthode la plus recommandée consiste à utiliser le mot clé dans, qui est à la fois s?r et efficace, et n'est pas affecté par la valeur de aucun, ce qui convient à la plupart des scénarios.

See all articles