Symfony TD3: base de données

Connexion à la base de données

Paramétrage

Nous allons désormais importer la base de données shows. Pour cela, créez un nouveau projet Symfony, importez la base de données et paramétrez votre fichier .env.

symfony new --webapp shows

Import des entités

Vous pouvez obtenir le code des entitiés ici:

Génération des accesseurs

Lancez la commande:

symfony console make:entity --regenerate

Afin de générer automatiquement tous les accesseurs sur les classes entités, qui ont une visibilité réduite.

Contrôleur de classe

Nous allons maintenant générer un contrôleur de classe, basé sur l'entité Series. Pour cela utilisez la commande:

symfony console make:crud

Observez le code généré (src/Controller/SeriesController.php ainsi que templates/series/*)

Modifications

Limite du nombre de résultats

Modifiez l'action index() de SeriesController pour limiter le nombre de résultats. Vous pourrez vous aider de la fonction findBy.

Suppression des méthodes inutiles

Modifiez le code pour enlever les méthodes inutiles (ici, on ne veut pas de la suppression, de l'édition ou de l'ajout d'une série par exemple).

Poster

Ajouter le poster d'une série dans sa fiche (lorsque l'on clique sur "show").

  • Vous pourrez créer une route du type /series/poster/{id}, qui sera en fait le poster de la série
  • L'objet que vous obtiendrez à l'aide de getPoster() est un stream, vous devrez appeller stream_get_contents() pour le lire
  • Dans Symfony, vous pouvez retourner une instance de Response construite manuellement.

Liste des saisons

Affichez la liste des saisons d'une série dans sa fiche ("show"), triées par leur numéro.