Maison >développement back-end >tutoriel php >'Spécifications' pour le développement de la fonction d'envoi de code de vérification SMS dans Laravel (photo)
Laravel est un framework de développement Web PHP simple et élégant (PHP Web Framework). Ensuite, à travers cet article, je partagerai avec vous la fonction d'envoi de SMS de développement « standardisé » code de vérification dans Laravel. Les amis qui en ont besoin peuvent s'y référer
. Introduction à Laravel
Laravel est un framework de développement Web PHP simple et élégant (PHP Web Framework). Il peut vous libérer des codes désordonnés comme les nouilles ; il peut vous aider à créer une application réseau parfaite, et chaque ligne de code peut être concise et expressive.
Laravel dispose déjà d'une implémentation avancée de PHP ActiveRecord -- Eloquent ORM. Il peut facilement appliquer des « contraintes » aux deux côtés de la relation, afin que vous ayez un contrôle total sur les données et profitiez de toutes les commodités d'ActiveRecord. Eloquent prend en charge nativement toutes les méthodes du générateur de requêtes (query-builder) dans Fluent.
Développement "Standard" de la fonction d'envoi de code de vérification SMS dans LaravelScénarios de demande
Envoyez un « code de vérification » ou une « notification par message » sur votre téléphone mobile ou par e-mail.
Complet
Tout d'abord, la spécification dans Laravel est d'utiliser la "Notification de message" de Laravel, ici le scénario est "Code de vérification" . Cette exigence est utilisée par presque tous les systèmes logiciels.
Créer une scène de notification
La première étape consiste à utiliser php artisan make:notification pour créer une classe de notification une fois la création réussie, trois d'entre elles existent déjà par défaut. Il existe trois méthodes via, toMail et toArray. Le code de vérification étant envoyé, cette classe de contrôle est nommée VerificationCode.
Créez ensuite un modèle de données de code de vérification et une migration de table de données. Vous pouvez utiliser php artisan make:model "VerificationCode" -m pour créer rapidement le modèle de données et la migration directement.
La migration de ThinkSNS+ est la suivante :
La deuxième étape consiste à ouvrir la classe de modèle de données et à ajouter le trait IlluminateNotificationsNotifiable dedans :
À partir du code, vous pouvez voir que nous avons également ajouté une "suppression logicielle". Parce que le code de vérification est envoyé en fonction du numéro de téléphone portable ou de l'e-mail, il n'est pas nécessaire d'utiliser d'autres astuces intégrées. Il n'est pas nécessaire de l'enregistrer dans le "Tableau de données de notification de message", donc dans la méthode routeNotificationFor, nous choisissons de renvoyer directement le compte (numéro de téléphone mobile ou adresse e-mail) qui doit le faire. être envoyé.
Rejoignez le Mode usine, envoyez rapidement
Ouvrez la base de données/factories/ModelFactory.php et ajoutez une notification à ce sujet Définition d'usine du modèle de données :
De cette façon, nous pouvons créer rapidement des codes de vérification et envoyer des notifications via la fonction d'usine factory(ZhiyiPlusModelsVerificationCode::class).
Pourquoi le trait de notification est-il ajouté au modèle de données du code de vérification ?
Tout d'abord, Laravel ajoute le trait IlluminateNotificationsNotifiable au modèle User par défaut, donc $user->notify() peut rapidement envoyer une notification à l'utilisateur, mais il y a cette phrase dans le document de spécification :
N'oubliez pas que vous pouvez utiliser le trait IlluminateNotificationsNotifiable sur n'importe lequel de vos modèles. Vous n'êtes pas limité à l'inclure uniquement sur votre modèle utilisateur.
Ce sont les mots originaux du document officiel de Laravel, qui. signifie IlluminateNotificationsNotifiable Pas seulement pour le modèle User.
Notre ajout d'IlluminateNotificationsNotifiable dans le modèle de code de vérification est donc entièrement cohérent avec l'utilisation correcte des notifications Laravel.
Développer une classe de notification
Tout d'abord, il y a un canal de champ dans la migration de la table de données, qui est l'ID du canal de notification We. peut utiliser cette valeur pour décider comment envoyer le code de vérification, et cette opération est implémentée dans le via de la classe de notification :
La façon dont nous choisissons est de renvoyer directement le valeur du canal, qui peut être n'importe quelle valeur, tant que nous implémentons ce canal de notification, nous pouvons l'envoyer, et Laravel a intégré une base de données de canaux d'envoi, mail et nexmo
Complet envoyer le code de vérification de l'e-mail
En fait, il y a très peu de choses que nous devons faire dans cette étape Lors de la production de la classe de notification, la méthode toMail a été complétée, nous pouvons donc directement la modifier. le contenu du message.
Envoi complet du code de vérification SMS
Nous utilisons le package overtrue/easy-sms pour envoyer des SMS, qui est un client d'envoi de SMS développé par An Zhengchao . Il existe de nombreuses plates-formes SMS intégrées et la mise en œuvre est également excellente. (Tucao : bien que certains détails posent problème, comme le fait de ne pas passer la passerelle selon la méthode d'appel du contrat)
Comptez d'abord sur SMS pour envoyer au client le compositeur du package nécessite overtrue/easy-sms, puis créez une nouvelle configuration /config/sms.php, quel est le contenu ? , suivez simplement les instructions sur la page d'accueil d'easy-sms pour l'ajouter. Tout d'abord, publiez notre contenu de configuration (afin de réduire le nombre de mots de l'article, ne conservez que la configuration Alibaba). :
Nous avons ajouté une configuration de canal pour différents scénarios, tels que le code de scénario de code de vérification pour faciliter la lecture du messager la configuration .
Ensuite, ouvrez AppServiceProvider.php et ajoutez ce qui suit dans le registre :
À ce stade, l'intégration d'EasySms dans Laravel est terminée, mais le véritable La fonction n'a pas encore été développée. Nous regardons ensuite vers le bas.
Développer le canal d'envoi de SMS
Pourquoi développer ? Tout d'abord, easy-sms prend en charge beaucoup de choses. Vous pouvez envisager de développer une classe de canal d'envoi de notifications pour chaque plate-forme d'envoi séparément, ou vous pouvez développer une seule classe de canaux d'envoi de SMS. Nous choisissons de développer une classe d'envoi de notifications SMS via easy-. Stratégie SMS. Mécanisme pour envoyer des codes de vérification à plusieurs plateformes.
Tout d'abord, créez un nouveau fichier app/Notifications/Channels/SmsChannel.php. Étant donné que Laravel ne fournit pas de fonction de génération, vous devez simplement le créer vous-même. Le contenu de SmsChannel est le suivant :
Le canal d'envoi de notifications SMS basé sur easy-sms est terminé.
Scénario de développementEnvoyer un message
Cette partie appartient entièrement au développement d'easy-sms. Nous créons un nouveau VerificationCodeMessage. php , le contenu est le suivant :
Ensuite, nous revenons à la classe de notification du code de vérification VerificationCode et ajoutons la méthode toSms. Mon code est le suivant :
Configuration de scénarios, tels que des modèles pour différents canaux de code de vérification, etc., afin que l'expéditeur du message puisse déterminer la configuration du scénario d'utilisation en fonction de la passerelle d'envoi. Se plaindre encore une fois, la conception du contrat d'easy-sms devrait également avoir cette idée, mais getContent/getTemplate/getData ne transmet pas du tout la passerelle lorsque la passerelle réelle est appelée. . . D'accord, notre développement est terminé.Envoyer le code de vérification
Il a été ajouté à "l'usine" lors de la création du modèle de données du code de vérification, afin que nous puissions utiliser l'usine directement Fonction, envoyez la démo : Vous avez terminé, easy-sms est un très bon package.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!