Middleware CakePHP : intégrez les services de messagerie et de SMS pour implémenter les notifications de messages
Introduction :
Dans les applications Web modernes, les notifications de messages sont une fonction très importante. Les utilisateurs doivent recevoir des informations importantes du système, telles qu'une inscription réussie, la réinitialisation du mot de passe, les mises à jour de l'état des commandes, etc. Pour réaliser cette fonctionnalité, l’intégration des services de messagerie et SMS est devenue une approche courante. Dans cet article, je vais présenter comment utiliser le middleware CakePHP pour implémenter la fonction de notification de message et fournir quelques exemples de code spécifiques.
// app.php 'EmailTransport' => [ 'default' => [ 'className' => 'CakeMailerTransportMailgunTransport', 'apiKey' => 'YOUR_MAILGUN_API_KEY', 'domain' => 'YOUR_MAILGUN_DOMAIN', 'url' => 'YOUR_MAILGUN_API_URL', ], ],
Nous devons remplacer YOUR_MAILGUN_API_KEY
, YOUR_MAILGUN_DOMAIN
et YOUR_MAILGUN_API_URL
par les valeurs réelles. YOUR_MAILGUN_API_KEY
、YOUR_MAILGUN_DOMAIN
和YOUR_MAILGUN_API_URL
替换为实际的值。
// app.php 'Twilio' => [ 'sid' => 'YOUR_TWILIO_SID', 'token' => 'YOUR_TWILIO_TOKEN', 'sender' => 'YOUR_TWILIO_PHONE_NUMBER', ],
同样,我们需要将YOUR_TWILIO_SID
、YOUR_TWILIO_TOKEN
和YOUR_TWILIO_PHONE_NUMBER
// src/Middleware/NotificationMiddleware.php namespace AppMiddleware; use CakeMailerMailerAwareTrait; use CakeMailerEmail; use TwilioRestClient; class NotificationMiddleware { use MailerAwareTrait; public function __invoke($request, $response, $next) { // 执行下一个中间件之前的代码 // ... // 发送电子邮件 $this->getMailer('Default')->send('notification', [$data]); // 发送短信 $twilio = new Client(getenv('TWILIO_SID'), getenv('TWILIO_TOKEN')); $twilio->messages->create( $phoneNumber, [ 'from' => getenv('TWILIO_SENDER'), 'body' => $message, ] ); // 执行下一个中间件之后的代码 // ... return $next($request, $response); } }
YOUR_TWILIO_SID
, YOUR_TWILIO_TOKEN
et YOUR_TWILIO_PHONE_NUMBER
par les valeurs réelles. // config/bootstrap.php use AppMiddlewareNotificationMiddleware; use CakeHttpMiddlewareQueue; $middlewareQueue = new MiddlewareQueue(); $middlewareQueue->add(new NotificationMiddleware()); // 替换原有的middlewareQueue // ... // 设置新的middlewareQueue $application->setMiddleware($middlewareQueue);
Pour que le middleware fonctionne, nous devons l'enregistrer auprès de l'application. Nous pouvons le faire en ajoutant le code suivant au fichier bootstrap.php :
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!