Chapitre 8 du parcours Symfony pour les devs PHP
Retour à la cave
6 exercices · 1 650 XP · environ 4 h 45
Migrationsdoctrine:migrations:diffdoctrine:migrations:migrateup() et down()Migration de donnéesdoctrine:schema:validateValeur par défautdown()ManyToManyCôté propriétaireCôté inverse#[ORM\OrderBy]Table de jointureRequêtes N+1Chargement paresseuxJointureaddSelectleftJoinPaginationPaginatorsetFirstResultsetMaxResults#[MapQueryParameter]Débogage
Les exercices du chapitre
-
La première migration
Exercice 1 · 250 XP · 5 objectifs vérifiés par des tests
Grande nouvelle : la taverne ouvre son site pour de vrai. Il tournera sur un serveur, avec une base de données qui garde les réservations, les avis et les comptes des employés.
Migrationsdoctrine:migrations:diffdoctrine:migrations:migrateup() et down()
-
La cave reste pleine
Exercice 2 · 260 XP · 5 objectifs vérifiés par des tests
Le site tourne depuis une semaine, et Bruna a une demande : afficher sur chaque fiche combien de portions il reste aujourd'hui. Pipin a déjà ajouté le champ à l'entité Plat (portions, 10 par défaut). Il ne reste « qu'à » mettre la base à jour.
Migration de donnéesdoctrine:schema:validateValeur par défautdown()
-
Le garde-manger
Exercice 3 · 260 XP · 5 objectifs vérifiés par des tests
Bruna veut afficher les ingrédients de chaque plat : les voyageurs ont des allergies, et le Piment de feu a déjà envoyé un nain à l'infirmerie. Pipin a commencé : l'entité Ingredient existe, et il a écrit la commande qui range le garde-manger, app:garnir-les-plats. Il ne reste qu'à relier tout ça.
ManyToManyCôté propriétaireCôté inverse#[ORM\OrderBy]Table de jointure
-
Le coup de feu du vendredi
Exercice 4 · 270 XP · 5 objectifs vérifiés par des tests
Vendredi soir, la taverne affiche complet. Bruna a ajouté à la carte le festin du vendredi, vingt-quatre plats, et les ingrédients s'affichent désormais sur la carte. Résultat : la page /menu se traîne, et le serveur de base de données fume plus que le Piment de feu.
Requêtes N+1Chargement paresseuxJointureaddSelectleftJoin
-
Le grand livre d'or
Exercice 5 · 270 XP · 5 objectifs vérifiés par des tests
Le livre d'or a fait le tour des Terres du Milieu : Bruna veut une page qui rassemble tous les avis, tous plats confondus. Pipin l'a écrite (/livre-d-or), le template est prêt, mais la page affiche tous les avis d'un coup. Ils sont déjà une cinquantaine, et ce ne sera bientôt plus lisible.
PaginationPaginatorsetFirstResultsetMaxResults#[MapQueryParameter]
-
🐉 Boss : le cellier effondré
Exercice 6 · 340 XP · 5 objectifs vérifiés par des tests
Pipin a profité d'une nuit calme pour « ranger le cellier ». Il a ajouté les allergènes sur les fiches des plats, et il en a profité pour « simplifier deux ou trois choses ». Le lendemain, Bruna trouve la taverne sens dessus dessous :