Chapitre 8 du parcours Symfony pour les devs PHP

Retour à la cave

6 exercices · 1 650 XP · environ 4 h 45

Ce chapitre fait travailler : 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

  1. 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()

  2. 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()

  3. 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

  4. 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

  5. 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]

  6. 🐉 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 :

    DébogageMigrationsManyToManyRequêtes N+1Pagination