Créez un système de notification avec Laravel

Créez un système de notification avec Laravel

Temps de lecture: 5 minutes

Hello la #davidnation,

Vous ne savez pas comment notifier les utilisateurs de votre application, d’une nouveauté sur votre site ? Aimeriez-vous envoyer automatiquement des mails ou des messages dans des chaines Slack à vos utilisateurs ? Ce serait cool n’est-ce pas ?

C’est justement ce que nous apprendrons à faire dans ce tuto, en utilisant Laravel. Ne me remerciez surtout pas.

Pourquoi laravel ?

Tout simplement pour sa simplicité, et son système de notification que j’aime beaucoup.

Il est simple à mettre en œuvre car il génère des notifications en définissant une classe unique pour chaque notification. Cette classe définit comment informer les utilisateurs du message à l’aide d’un canal

Prérequis: il faut avoir une application Laravel installé et fonctionnel. Pour savoir comment faire, lisez la documentation officielle.

Créer une table User

Le but c’est d’envoyer un email au premier utilisateur, lui notifiant qu’une personne a visité le site. Pour ça, il nous faut des utilisateurs (email, username, mot de passe). Un moyen rapide de le faire est d’utiliser

Laravel va créer rapidement avec cette commande, un système d’authentification et des routes pour s’authentifier. Rendez-vous sur url_de_votre_app/register pour créer un utilisateur. C’est fait ? Passons à la prochaine étape.

Maintenant que le modèle utilisateur est créé, examinons-le. Accédez à app / User.php contenant le code suivant:




Si vous regardez de plus près, on utilise Notifiable. Chaque fois que vous souhaitez que votre modèle soit notifiable, tout ce que vous avez à faire est d’importer Illuminate\Notifications\Notifiable dans votre modèle.

Il suffit de noter que certains canaux de notification s’attendent à ce que certaines informations soient disponibles. Par exemple, le canal de l’e-mail s’attend à ce que le modèle ait une propriété « email » afin de savoir à quelle adresse email envoyer la notification.

Notification par e-mail

Exécutez la commande suivante dans votre terminal. Assurez-vous d’être dans le dossier de votre projet.

Maintenant, allez à app/Notifications/Newvisit.php. Dans ce fichier, vous trouverez le code suivant:




Comprenons ce code. Premièrement, il y a le constructeur, où toutes les données pertinentes seront injectées.




Ensuite, il y a la méthode via(), qui vous permet de choisir la méthode de notification qui sera utilisée pour envoyer la notification à chaque instance..

Ensuite, il a la méthode toMail () , qui renvoie trois attributs. Le premier est line, qui spécifie le corps de départ de l’e-mail. Ensuite, il y a action, qui spécifie le nom du bouton et l’URL vers laquelle le bouton sera redirigé. Enfin, il y a à nouveau line, qui spécifie le dernier paragraphe de l’email. Voici un exemple de sortie:




Notification Laravel

Envoyer des notifications par e-mail avec Laravel

Allez dans routes/web.php et collez le code suivant dans le fichier:




Vous devez importer une classe de notification via App\Notifications\Newvisit; puis dans la fonction route, j’ai appelé le premier utilisateur de la table User et je l’ai sauvegardé dans la variable $user (App \ User :: first () ;). Ensuite, la notification est envoyée à l’aide de la fonction notify dans l’instance Newvisit comme le montre la ligne de code suivante: $user-> notify (new Newvisit (« Un nouvel utilisateur a visité votre application. ») )

Ouvrez maintenant app\Notifications\Newvisit.php et ajoutez-y le code suivant.




Ouvrez ensuite le fichier .env et définissez les informations d’identification de la base de données et la fonction d’envoi. Consultez cet excellent article pour plus de détails sur cette étape. Le fichier .env devrait ressembler à ceci:




Maintenant tout est prêt, visitez votre application directement à partir de la page d’accueil. Si vous vous rendez sur le mail du premier utilisateur, vous devriez voir un message semblable à celui-ci:

 

Envoyer des notifications à Slack avec Laravel

Pour créer et envoyer une notification pour Slack, vous devez installer Guzzle  via Composer. Exécutez les commandes suivantes:




Vous aurez besoin d’une nouvelle classe pour les notifications Slack. Pour cela, allez dans app/Notifications/Newslack.php et collez le code suivant.




Ici, la méthode via()  définit le support de notification et la méthode  toSlack() envoie la notification à Slack.

Définir le Webhook entrant

Maintenant, pour recevoir la notification Slack, allez à https: //{votre équipe} .slack.com /apps . Choisissez le type « Webhooks Entrants » et ajoutez une nouvelle configuration.

Copiez l’URL Webhook que Slack vous donne dans les instructions d’installation

 

et retournez à votre application Laravel.

Votre modèle User doit implémenter une méthode routeNotificationForSlack () qui renvoie ce Webhook. Par conséquent, allez à app/User.php et ajoutez-y la fonction suivante.




Maintenant, allez dans routes/web.php et ajoutez les routes suivantes.




Lancer votre application et ajoutez /slack à votre URL. Vous recevrez une notification Slack comme indiqué ci-dessous:

notification

Et voilà ! C’est ce que je voulais partager avec vous. Je l’ai moi-même testé et ce système m’a beaucoup aidé. J’espère que ça vous aidera aussi.

  • Merci d’avoir lu ! 🙂 Si vous avez aimé cet article,
  • Faites un coucou sur : Instagram | Facebook | Twitter |
  • Avez-vous besoin d’aide pour votre projet web ? Ecrivez moi à l’adresse suivante : david@oschool.ci
Deviens toi aussi développeur web !
I agree to have my personal information transfered to MailChimp ( more information )
Commences ta carrière de développeur web, GRATUITEMENT, ici et maintenant !
Je hais les sapms. Votre adresse email ne sera jamais vendu ou partagé avec un tiers
Partages à tous tes amis !

6 thoughts on “Créez un système de notification avec Laravel

  1. Salut David je viens découvrir ton blog et ce tuto. Juste une question si tu le mettre .J’aimerai mettre en place ne application laravel et ce systeme de notification a chaque fois qu’un formulaire est submit. Le soucis étant est qu’il me faut le faire en rx local avec xampp. Est ce que, la notification via email marcherai ?.
    Aussi qu’est ce que c’es slack?. merci

    1. Mer ci pour ta question Yann. Oui, ca peut marcher facilement depuis le local. Il suffit de savoir comment configurer cela dans son fichier d’environnement.
      Slack est un outil de collaboration beaucoup utilisé en entreprise. Tu peux en savoir plus en googlant 🙂

    2. Mer ci pour ta question Yann. Oui, ca peut marcher facilement depuis le local. Il suffit de savoir comment configurer cela dans son fichier d’environnement.
      Slack est un outil de collaboration beaucoup utilisé en entreprise. Tu peux en savoir plus en googlant

  2. Merci je vais tcheker ca vite fait. Sinon saurais-tu comment faire fonctionner redux sur laravel?.
    Je peine à implèmenter un store redux dessus.Pourtant avec react c’est sans problème.Tout les tuto se limitent à l’écosysteme laravel + reactjs sans jamais aller dans l’intégration de redux… dessus.
    (un peu hors context mais désolé)

    1. j’ai pas encore essayé d’installer redux sur laravel malheureusement.
      mais je vais gratter là dessus, et j’en ferai l’objet d’un prochain article. J’espère que ça pourra t’aider

  3. Biensur ça aiderait énormément. React et redux on en trouve sur le net , mais par contre laravel + react + redux personne en propose sur le net , juste des boitepoiler confusent sans savoir où et comment les fichiers doivent être configurer.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.