Les utilisateurs doivent être informés des événements importants dans une application.
Sans notifications efficaces, des informations cruciales pourraient être manquées, entraînant une mauvaise expérience utilisateur.
Laravel offre une solution robuste pour envoyer des notifications via plusieurs canaux, garantissant que vos utilisateurs restent informés.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.
Dans Laravel, les notifications permettent d’informer les utilisateurs de divers événements qui se produisent dans votre application, comme la création d’un commentaire, un changement d’état ou d’autres actions importantes. Une notification peut être envoyée par différents canaux, comme le mail, les bases de données, les SMS, etc.
Dans cet axe, nous allons créer une notification en ligne de commande et l’utiliser dans le contexte de l’envoi d’une notification lorsqu’un nouveau commentaire est ajouté.
Sécuriser l'accès Horizon avec Laravel
Avant de commencer avec la notification, il faut d’abord aborder une configuration préalable dans HorizonServiceProvider. Dans cette étape, vous mettez en place une règle d’accès qui permet de gérer les utilisateurs autorisés à voir l’interface Horizon dans un environnement de production.
Voici le code de la méthode gate dans HorizonServiceProvider :
protected function gate()
{
Gate::define('viewHorizon', function ($user) {
// Si l'application n'est pas en production, on permet l'accès
if(config('app.env') != 'production'){
return true;
}
// Si l'utilisateur est dans une liste spécifique, on permet l'accès
return in_array($user->email, [
'admin@example.com', // Ajouter des emails autorisés ici
]);
});
}
Explication : Cette méthode définit une règle d’accès pour viewHorizon, où seuls certains utilisateurs (par exemple ceux ayant un email spécifique) peuvent voir l’interface Horizon en environnement de production. Vous pouvez modifier la liste des emails pour ajouter les utilisateurs autorisés.
Notifications Laravel via ligne de commande
Ensuite, nous allons créer une notification en ligne de commande. Dans Laravel, cela se fait avec la commande artisan suivante
php artisan make:notification NewComment
Cela crée un fichier de notification dans app/Notifications/NewComment.php. Nous allons maintenant détailler ce fichier.
Code de la notification
Voici le code de la notification NewComment :
comment = $comment;
}
/**
* Get the notification's delivery channels.
*
* @return array
*/
public function via(object $notifiable): array
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*/
public function toMail(object $notifiable): MailMessage
{
return (new MailMessage())
->line('The introduction to the notification.')
->action('Notification Action', url('/'))
->line('Thank you for using our application!');
}
/**
* Get the array representation of the notification.
*
* @return array
*/
public function toArray(object $notifiable): array
{
return [
//
];
}
}
Explication du code
- use Queueable; :Ce trait permet de mettre la notification en file d’attente pour une exécution différée, ce qui est utile pour gérer des notifications de manière asynchrone.
- protected Comment $comment; :On déclare une propriété protégée pour stocker l’objet Comment associé à cette notification.
- public function __construct(Comment $comment) :Le constructeur reçoit un objet Comment et l’assigne à la propriété $comment.
- public function via(object $notifiable) :array: Cette méthode définit les canaux par lesquels la notification sera envoyée. Ici, nous choisissons mail pour envoyer un e-mail, mais vous pouvez ajouter d’autres canaux comme la base de données (database), Slack, SMS, etc.
- public function toMail(object $notifiable) :MailMessage: Cette méthode crée le contenu de l’e-mail qui sera envoyé au destinataire. Vous pouvez personnaliser le message d’introduction, le bouton d’action et le texte de remerciement.
- public function toArray(object $notifiable) :array: Cette méthode crée la représentation de la notification sous forme d’un tableau, ce qui est utile si vous souhaitez enregistrer cette notification dans une base de données.
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.
FAQ
Comment créer une notification dans Laravel?
Comment sécuriser l'accès à Horizon dans Laravel?
Quels sont les canaux de notification disponibles dans Laravel?
Comment fonctionne la file d'attente dans les notifications Laravel?
Comment personnaliser le contenu d'une notification par e-mail dans Laravel?
Conclusion
En maîtrisant les notifications dans Laravel, vous améliorez la communication avec vos utilisateurs. Quel canal de notification préférez-vous implémenter dans votre projet?