Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Découvrir API Platform

Modifier la sortie avec un évènement

Testez gratuitement nos 1336 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
À l'aide d'un évènement très simple, vous allez programmer un envoi d'e-mails en cas de création d'une nouvelle tâche dans l'API.
06:43

Transcription

Alors, du coup, je vous propose qu'on envoie un mail, qu'on essaie, en tout cas, d'envoyer un mail. Comment on va envoyer un mail ? On va, simplement, regardez, venir copier cette classe qui n'est pas trop mal puis on va un petit peu la disséquer que je vous ai expliqué un petit peu comment elle a été codée, vous allez voir que ce n'est pas très compliqué en réalité. Comment ça fonctionne quand on veut se câbler, en tout cas, sur un événement ? On va créer d'abord un nouveau dossier dans notre « Bundle » qui va s'appeler « EventSubscriber », comme ça. Attention à bien respecter ce nommage parce qu'il est extrêmement importent. Et ensuite, on va créer un fichier qui va s'appeler « TaskMailSubscribe.php ». Là encore, respectez bien, ici, le nommage. On va coller et on va renommer ici le code. Donc là, c'est « TaskMailSubscriber ». Alors, attention, ce qui c'est « Subscriber » ici, il faut que ce soit pareil pour la classe. C'est obligatoire d'avoir le même nommage pour sa classe que le nom de la classe et vous allez voir pourquoi un petit peu après. Bien sûr, nous, on ne va pas utiliser des « Book », on va utiliser des « Task », on va pouvoir supprimer un petit peu les commentaires, on va tout garder comme ça, on va juste adapter un petit peu le code. Alors, on va adapter ici, on va dire que ce n'est pas « Book », mais ici, ça doit être « Task » que l'on doit récupérer. Donc, on s'attend à avoir une « Task » qui est un instance de « Task » et ensuite, on a les bonnes infos, etc. Ensuite, ce qu'on va faire ici, c'est qu'on va simplement faire un « contact at » et puis on va faire « no-reply.com » et puis on va remplacer toutes les « strings » qui sont des « strings » de base par ce que, nous, on veut. Ce que nous, on veut, ça va être quoi ? Je vous explique un petit peu ce que fait ce contrôle-là. Donc, concrètement ici, on va avoir un « Subscriber », d'accord, qui va instancier le « mailer », lui, il va être injecté automatiquement ici, au « construct » et ensuite on va, ici, récupérer donc, c'est parce qu'on a « implements » en « EventSubscriberInterface », on doit définir sur quel événement on va se câbler et on va se câbler sur « kernel : : view ». Si vous retournez, bien évidemment, dans la documentation, ici, vous verrez que le « kernel.view » qu'on a quelque part, un petit peu par là, voilà, on a énormément ici, de « kernel.view » qui existe. Donc, ça, c'est « l'event kernel.view » et on voit qu'effectivement, il va être utilisé quand on va avoir un « persist », c'est à dire quand on va inscrire, quand on va enregistrer au niveau des verbes, en « POST », en « PUT » ou en « DELETE ». Donc là, nous, c'est le « POST » qui va nous intéresser, concrètement ici, on vérifie bien que c'est une méthode « POST », si ce n'est pas une méthode « POST » qui est récupérée, on ne retourne à rien. Donc, on se câble sur ça et on va définir l'action « sendMail » qui est la publique fonction ici qu'on a « sendMail » qui va être mis en priorité, ici, le « Post_Write », voyez que c'est une priorité 31, au niveau des services, quand même, très haut. Du coup, ça va passer, quasiment, avant tout le monde et du moins, quand on aura ici un « POST » ça va récupérer, envoyer et surtout appeler la fonction « sendMail ». Maintenant, qu'est ce qui se passe dans cette fonction « sendMail » ? On récupère la « Task » directement depuis les « Events », sur « getControllerResult ». Le résultat du contrôleur, ce sera forcément une sauvegarde, donc ce sera un objet « Task ». La méthode, on va la récupérer sur « getRequest », « getMethod » pour savoir si s'est du « POST », du « get », etc. On fait, simplement, une petite sortie. Pensez toujours dans « PHP », à sortir le plus vite possible. Là en l’occurrence, c'est ce qui est fait, si ce n'est pas une instance de « Task » au niveau de l'objet, si ce n'est pas une méthode « POST », on sort. Ensuite on prépare le message avec « Swift mailer », donc ça, c'est du grand classique « Symfony », on utilise le service « Swift mailer »,une nouvelle instance, on lui met, un « Subject », un « From », un « To », un « Body » qui sera, en fait, le corps du mail et simplement, on va envoyer le mail. C'est très simple au niveau du fonctionnement, on va un petit peu le customiser, on va mettre « Une nouvelle tâche est créée ». Donc ici, vous allez, simplement, l'ajouter comme ça, en tant que sujet et puis ensuite, on va customiser un petit peu ici, on va dire « Tâche %s », on va mettre le nom de la tâche, « par %s » et là, on va mettre l'utilisateur. On sait qu'ici, on va pouvoir récupérer « task getId », ça, c'est « l'Id » qu'on veut, mais nous, on ne va pas prendre « getId », on va prendre « getName », comme ça, on a le nom de la tâche, « , » et là, on va aller chercher « Task » « getUser » et sur le « user », on va rajouter juste une méthode « getFullname », comme ça, qui va nous permettre d'avoir toute l'information. Donc, ça il faut le rajouter parce que ça n'existe pas encore, sur le « User », on va simplement, ici, se faire une « public function » qui va s'appeler « getFullname », vous voyez que là, vous avez possibilité de faire un peu tout ce que vous voulez, il suffit, simplement, de câbler ce que vous intéresse. Puis cette fonctionnalité, on va lui dire, tout simplement, de retourner un petit « sprintf », également, avec « %s %s » et on va aller chercher le « this getFirstname » et le « this getLastname », « this », ici, « getLastname », comme ça, ça va nous retourner le nom complet, le « Fullname » qu'on a ici se sera bon, alors, attention, il vous dit que c'est plutôt « FullName », il faut l'écrire comme ça. Il vous donnera les fautes d'orthographe, pensez à les répercuter aussi. Donc là, on a, ici, un mail qui devrait partir si je créais un objet. Ce qui est génial, c'est que c'est tout ce qu'on a à faire, en fait, en réalité, quand vous allez créer un « subscriber » dans le dossier « EventSubscriber » de votre « Bundle », vu que vous avez installé une version classique « d'API Platform », en fait, vous n'avez rien d'autre à faire, c'est expliqué ici, parce que vous utilisez le « DunglasActionBundle » qui va automatiquement enregistrer les « subscribers » comme des services, directement, quand vous avez démarré votre application. Ça, c'est parfait pour nous, ce qui veut dire qu'en fait, concrètement, on va pouvoir, ici, enregistrer et puis, dès qu'on va avoir le nouvel événement qui va passer sur ça, on va pouvoir le travailler et on va pouvoir le récupérer et on va, surtout, avoir un fonctionnement de notre « Event Listener », particulier. Pour voir qu'il est bien enregistré en tant que service, vous regarderez, comme j'ai fais, certes, je recharge je vais simplement, dans les « Events », ici, et je vais chercher dans les « Not Called Listeners », ceux qui ne sont pas appelés et je verrai effectivement que j'ai, en fait, mon « Listener » à moi et ce « Listener » est bien enregistré, ce qui fait que maintenant, il va bien se lancer. Concrètement, à chaque fois que vous allez créer un nouvel objet, vous allez envoyer un nouveau mail, c'est aussi simple que ça, il n'y a pas grand chose de plus à faire, quand vous voulez créer, de nouveau, « Listener » et quand vous voulez vous câbler sur une action particulière. N'hésitez pas à reregarder cette vidéo on passe pour le coup, et les Tasks, donc, il faut bien comprendre et redécortiquer et bien sûr, après, amusez-vous avec les différents « Events » parce qu'il y en a plein, et vous pouvez faire ce que vous voulez, c'est ça, l’idée, en fait, ici, des « Events », c'est de pouvoir travailler sur des actions, pourquoi pas, extérieures à notre « API », mais qui vont fonctionner avec des événements de notre « API ». C'est quelque chose de très intéressant pour étendre les fonctionnalités.

Découvrir API Platform

Prenez en main le framework API Platform. Voyez comment effectuer sa configuration, créer des services web de données, et réalisez ainsi efficacement une application complète.

3h24 (54 vidéos)
Aucun commentaire n´est disponible actuellement
 

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !