Chapitre 10 du parcours Symfony pour les devs PHP
La vie d'une réservation
6 exercices · 1 730 XP · environ 4 h 30
MailerMailerInterfaceEmailMAILER_DSNassertEmailCountTemplatedEmailTemplate Twig d'e-mailurl() et path()Service d'envoiWorkflowMachine à étatsPlaces et transitionsmarking_storeinitial_markingTransitions depuis un contrôleurGardes#[AsGuardListener]TransitionBlockerworkflow_transitions()Événements du workflow#[AsEnteredListener]entered et leaveDébogage
Les exercices du chapitre
-
Le premier parchemin
Exercice 1 · 270 XP · 5 objectifs vérifiés par des tests
Les réservations du site sont désormais enregistrées : Pipin a ajouté au formulaire l'adresse du voyageur et le jour de sa venue. Il manque la politesse de la maison : un parchemin de confirmation, envoyé à chaque réservation.
MailerMailerInterfaceEmailMAILER_DSNassertEmailCount
-
Un parchemin qui a de l'allure
Exercice 2 · 270 XP · 5 objectifs vérifiés par des tests
Le parchemin de confirmation part bien, mais Bruna le trouve triste : trois lignes de texte, pas le moindre dragon. Elle veut un vrai parchemin, mis en page, avec un lien pour découvrir la carte.
TemplatedEmailTemplate Twig d'e-mailurl() et path()Service d'envoi
-
La vie d'une réservation
Exercice 3 · 280 XP · 5 objectifs vérifiés par des tests
Une réservation a une vie : demandée par un voyageur, confirmée par la taverne, puis honorée le soir venu. Sauf si quelqu'un l'annule entre-temps. Aujourd'hui, rien ne l'empêche d'être honorée sans avoir été confirmée, ou annulée après le repas.
WorkflowMachine à étatsPlaces et transitionsmarking_storeinitial_marking
-
Le registre de Gorm
Exercice 4 · 290 XP · 5 objectifs vérifiés par des tests
Gorm tient le registre des réservations sur un vieux cahier plein de ratures. Pipin lui a préparé une page, /cuisine/registre, qui liste les réservations et propose un bouton pour chaque transition possible. Il ne reste qu'à faire fonctionner ces boutons, et à poser deux règles de la maison :
Transitions depuis un contrôleurGardes#[AsGuardListener]TransitionBlockerworkflow_transitions()
-
Les parchemins du registre
Exercice 5 · 280 XP · 5 objectifs vérifiés par des tests
Il y a un souci dans la taverne : le voyageur reçoit « Votre table vous attend » dès qu'il remplit le formulaire. Or rien n'est encore confirmé : Gorm peut encore refuser la réservation, un soir de festin complet. Et quand il annule une réservation, le voyageur n'en sait rien.
Événements du workflow#[AsEnteredListener]entered et leaveMailer
-
🐉 Boss : les parchemins égarés
Exercice 6 · 340 XP · 5 objectifs vérifiés par des tests
Pipin a « simplifié » le registre pendant que Gorm était à la foire aux bières. Depuis :