Aller au contenu

Doctrine

1. Création de l'entité Quote

L'objectif de ce TP est de stocker les citations en base de données (MySQL ou MariaDB) via Doctrine.

Travail à réaliser

  1. Configurer votre projet pour utiliser une base de données MySQL ou MariaDB
  2. Ajouter une entité Quote en utilisant la commande Symfony make:entity avec :
    • content : obligatoire et non vide
    • meta : obligatoire et non vide
  3. Générer une migration puis exécutez-la

Attention

Chaque changement dans la base de données devra être géré via une migration.

Une fois la migration exécutée, vous devriez obtenir la table suivante :

quote-table

2. Création jeu de données

Créer un jeu de données pour les citations.

Travail à réaliser

  1. Installer le bundle DoctrineFixturesBundle
  2. Installer le paquet Foundry
  3. Créer une classe de fixtures QuoteFixtures pour ajouter au moins 5 citations en base de données

3. Modification liste et recherche

Maintenant que nous avons l'entité Quote et la table correspondante en base de données, nous allons pouvoir l'utiliser dans notre application.

Travail à réaliser

Modifier la liste des citations et la recherche pour remplacer le tableau PHP + filtrage par une requête Doctrine.

4. CRUD de citations

Le but est de mettre en place un CRUD (Create Read Update Delete) en ajoutant les actions suivantes :

  • ajouter une citation (URL /quote/new)
  • modifier une citation (URL /quote/12/edit)
  • supprimer une citation (URL /quote/12/delete)

CRUD

Travail à réaliser

  1. Ajouter les actions pour la création et l'édition d'une citation avec un formulaire permettant de saisir le contenu et la meta d'une citation
  2. Ajouter l'action pour la suppression d'une citation
  3. Intégrez des liens pour éditer ou supprimer chaque citation lors de son affichage
  4. Ajoutez une entrée dans la NavBar pour insérer une nouvelle citation

Attention

Les formulaires devront être réalisés en HTML sans le composant Form de Symfony. Utiliser ParamConverter pour récupérer une entité Quote.


Ressources :


Dernière mise à jour: February 27, 2023