Maison  >  Article  >  cadre php  >  Développement Laravel : Comment envoyer des notifications à l'aide de Laravel Notification ?

Développement Laravel : Comment envoyer des notifications à l'aide de Laravel Notification ?

王林
王林original
2023-06-13 14:55:461879parcourir

Laravel est un framework d'application Web PHP largement utilisé qui fournit une syntaxe moderne, élégante et riche en fonctionnalités pour la création d'applications Web. Le framework Laravel fournit une large gamme d'outils et de fonctionnalités, notamment l'envoi de notifications. Les notifications sont des technologies qui envoient des messages visuels ou vocaux aux utilisateurs ou à d'autres systèmes. Les notifications peuvent être de simples avertissements ou des instructions complexes, et elles peuvent être asynchrones afin de pouvoir être utilisées lors d'opérations de longue durée.

Dans cet article, nous apprendrons comment utiliser Laravel Notification pour envoyer des notifications. Nous examinerons également les types de notifications, les événements et les canaux. Notre objectif est de créer une application Web simple qui utilise les notifications Laravel pour envoyer des notifications et comprendre leurs différents types.

Prérequis

Avant d'entrer dans le contenu de cet article, nous devons nous assurer que les conditions suivantes sont remplies :

  1. Vous avez installé Laravel localement ou sur le serveur.
  2. Vous connaissez déjà le framework Laravel et comprenez comment créer des contrôleurs, des routes et des vues.
  3. Vous avez installé la base de données (MySQL, PostgreSQL, etc.) et l'avez configurée dans le fichier de paramètres Laravel.
  4. Vous avez configuré la configuration relative aux e-mails (cela est requis pour certains types de notifications).

Laravel Notifications

Laravel Notifications est une classe puissante pour simplifier la gestion des notifications. Les notifications peuvent être envoyées vers plusieurs canaux, notamment les e-mails, les SMS, la messagerie et les applications de messagerie instantanée comme Slack. Avec Laravel Notifications, vous pouvez créer des notifications avec un canal spécifié et les envoyer rapidement aux utilisateurs. Les notifications peuvent être traitées de manière asynchrone pour éviter les retards dans le début de l'envoi des notifications.

Les notifications Laravel comportent essentiellement les deux parties suivantes :

  1. Le message lui-même : le corps du message utilisé pour déclarer et définir les notifications dans l'application.
  2. Canal : utilisé pour envoyer et traiter différents types de messages de notification.

La plupart des développeurs définissent généralement le type de notification comme méthode modèle au sein de l'application afin que la méthode soit appelée lorsqu'une notification doit être envoyée.

Création de notifications dans Laravel

Les notifications de Laravel sont essentiellement de simples classes PHP qui héritent de la classe de base IlluminateNotificationsNotification du framework. Chaque notification peut être envoyée via plusieurs canaux, notamment le courrier électronique, Slack et des webhooks personnalisés.

Pour utiliser les notifications, définissez des classes de notification dans votre application. La classe de notification représente le message de texte enrichi (corps du message) de la notification, qui est créé en tant qu'instance de message avant que le message de notification ne soit envoyé au canal. Ensuite, envoyez cette notification sur un autre canal pour traitement.

Par exemple, nous pouvons créer une notification par message qui rappelle aux utilisateurs que leur abonnement est sur le point d'expirer. Pour envoyer cette notification, nous pouvons créer une nouvelle classe de notification dans l'application Lavarel comme :

php artisan make:notification SubscriptionEnding

Envoyer un e-mail via notification

Maintenant que nous avons créé une notification SubscriptionEnding, nous pouvons envoyer la notification par e-mail.

Vous devez configurer le système Mail de Laravel pour pouvoir envoyer des e-mails. Vous pouvez utiliser Artisan pour vous assurer que vos paramètres SMTP/IMAP sont corrects pour utiliser les services de messagerie dans votre application.

php artisan config:cache

Maintenant que nous avons configuré les paramètres liés au courrier électronique, nous devons implémenter la méthode toMail() dans la classe de notification. Nous écrivons le modèle de courrier électronique dans cette méthode :

class SubscriptionEnding extends Notification
{
    use Queueable;

    public function __construct($data)
    {
        $this->data = $data;
    }
  
    public function via($notifiable)
    {
        return ['mail'];
    }
    
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('Hi ' . $this->data['name'] . ', your subscription is about to end in ' . $this->data['days'] . ' days. Please log in to your account and renew your subscription to continue using our services.')
                    ->action('Renew Subscription', url('/subscription'))
                    ->line('Thank you for using our service.');
    }
  
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

Si nous devons personnaliser le modèle de courrier électronique, nous Vous pouvez utiliser la vue Laravel Mail pour écrire votre propre modèle HTML/CSS :

public function toMail($notifiable)
{
    return (new MailMessage)->markdown('emails.subscription-ending', [
        'name' => $this->data['name'],
        'days' => $this->data['days']
    ]);
}

La dernière étape consiste à envoyer notre notification à un certain utilisateur, par exemple :

$user = User::find(1)->notify(new SubscriptionEnding(['name' => 'John Doe', 'days' => 5]));

Nous avons envoyé avec succès une notification par e-mail lorsque l'abonnement est sur le point d'expirer. . En suivant ces étapes, vous pouvez facilement créer des notifications personnalisées, rédiger des canaux et des messages personnalisés pour celles-ci, et envoyer des e-mails, des messages texte et d'autres notifications via eux.

Utilisation des notifications sur la liaison du modèle d'itinéraire

La liaison du modèle d'itinéraire est l'une des fonctionnalités les plus puissantes des modèles Laravel. La liaison de route permet à Laravel de trouver automatiquement d'autres liaisons qui correspondent au modèle et de les injecter automatiquement dans la méthode du contrôleur.

Dans Laravel, la liaison des instances de modèle appelant aux routes est appelée « liaison de modèle de route ». Dans la plupart des cas, nous utilisons un identifiant spécifique dans le routage pour rechercher, récupérer et récupérer des objets. Cependant, lors de la liaison du modèle d'itinéraire, Laravel chargera automatiquement le modèle dans les paramètres de l'itinéraire.

Les notifications Laravel peuvent également utiliser la liaison de modèle d'itinéraire. Il s'agit d'un exemple simple qui illustre l'utilisation de Notification sur la liaison du modèle de routage.

Nous pouvons créer rapidement des exemples de contrôleurs et de routes à l'aide des commandes statiques Artisan :

php artisan make:controller UserController --resource --no-model

Définir le contexte dans le modèle :

class User extends Authenticatable
{
    public function routeNotificationForMail()
    {
        return $this->email;
    }
}

Ensuite, nous devons le définir dans le fichier de routage, par exemple nous plaçons la route dans routes/web .php Dans le fichier :

Route::get('users/{user}', 'UserController@show');

Implémentez la notification dans la méthode du contrôleur :

class UserController extends Controller
{
    public function show(User $user)
    {
        $details = [
            'title' => '你好啊!',
            'body' => '感谢你使用我们的系统!'
        ];
  
        $user->notify(new AppNotificationsSimpleNotification($details));
  
        return view('users.show', ['user' => $user]);
    }
}

Cela enverra une notification à l'utilisateur, la notification doit inclure un titre et un corps.

Conclusion

Laravel Notification est un moyen efficace d'ajouter une fonctionnalité de notification à votre application Web. Grâce au puissant système de Laravel, nous pouvons facilement définir et gérer les notifications et utiliser une variété de canaux différents pour envoyer des notifications. Dans cet article, nous avons appris à utiliser Laravel Notification pour envoyer des notifications, notamment par e-mail, SMS, courrier et Slack. Nous avons également exploré d'autres fonctionnalités de Laravel Notification, notamment les types de notification, les événements et les canaux.

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:
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