Dans les applications Web modernes, la fonctionnalité de notification des messages est cruciale. Qu'il s'agisse d'enregistrement des utilisateurs, de réinitialisation du mot de passe ou de mises à jour de commande, les notifications sont une partie indispensable de l'expérience utilisateur. Cet article présentera comment utiliser le middleware CakePHP pour intégrer les services de messagerie électronique et SMS pour réaliser des fonctions de notification de messages automatisées.
Tout d'abord, assurez-vous d'avoir installé et configuré correctement le framework CakePHP. De plus, vous devez avoir une clé API de service de service et de service SMS valide. Dans cet exemple, nous utiliserons Mailgun comme fournisseur de services de messagerie et Twilio comme fournisseur de services SMS.
Dans CakePHP, nous pouvons utiliser le service de messagerie fourni par Mailgun en configurant les paramètres SMTP dans le fichier config / app.php . Voici un exemple de configuration de mailgun:
// app.php
'EmailTransport' => [
'default' => [
'className' => 'CakeMailerTransportMailgunTransport',
'apiKey' => 'YOUR_MAILGUN_API_KEY',
'domain' => 'YOUR_MAILGUN_DOMAIN',
'url' => 'YOUR_MAILGUN_API_URL',
],
],
Veuillez remplacer votre_mailgun_api_key , votre_mailgun_domain et votre_mailgun_api_url avec des valeurs réelles.
Pour les services SMS, nous utiliserons l'API fournie par Twilio. Dans CakePHP, vous pouvez l'implémenter en configurant les paramètres pertinents de Twilio dans config / app.php :
// app.php
'Twilio' => [
'sid' => 'YOUR_TWILIO_SID',
'token' => 'YOUR_TWILIO_TOKEN',
'sender' => 'YOUR_TWILIO_PHONE_NUMBER',
],
De même, remplacez votre_twilio_sid , votre_twilio_token et votre_twilio_phone_number par des valeurs réelles.
Ensuite, nous rédigerons un fichier middleware appelé notificationmiddleware.php pour le traitement des fonctions de notification des messages. Le fichier doit être placé dans le répertoire SRC / Middleware :
// src/Middleware/NotificationMiddleware.php
namespace AppMiddleware;
use CakeMailerMailerAwareTrait;
use CakeMailerEmail;
use TwilioRestClient;
class NotificationMiddleware
{
use MailerAwareTrait;
public function __invoke($request, $response, $next)
{
// Code avant d'exécuter le middleware suivant
// Envoyer un e-mail
$this->getMailer('Default')->send('notification', [$data]);
// Envoi d'un SMS
$twilio = new Client(getenv('TWILIO_SID'), getenv('TWILIO_TOKEN'));
$twilio->messages->create(
$phoneNumber,
[
'from' => getenv('TWILIO_SENDER'),
'body' => $message,
]
);
// Code après avoir exécuté le middleware suivant
return $next($request, $response);
}
}
Dans le code, nous avons utilisé le Mailerawaretraitt, qui est livré avec CakePHP, pour envoyer des e-mails. Envoyez des messages texte via l'API de Twilio. La «notification» représente le modèle de messagerie que nous avons créé dans le répertoire Mailers, et $ DATA est les données transmises au modèle de messagerie.
Pour que le middleware prenne effet, vous devez l'enregistrer dans le fichier config / bootstrap.php :
// config/bootstrap.php
use AppMiddlewareNotificationMiddleware;
use CakeHttpMiddlewareQueue;
$middlewareQueue = new MiddlewareQueue();
$middlewareQueue->add(new NotificationMiddleware());
// En créer un nouveaumiddlewareQueue
$application->setMiddleware($middlewareQueue);
Ce code enregistre NotificationMiddleware dans la file d'attente de middleware de l'application.
Avec CakePHP Middleware, vous pouvez facilement intégrer les services de messagerie électronique et SMS pour obtenir des capacités de notification de messages automatisées. Les exemples de code fournis dans cet article peuvent vous aider à implémenter des fonctionnalités similaires dans vos propres projets. Selon vos besoins, vous pouvez étendre ou personnaliser ces codes pour répondre à vos besoins spécifiques.