TD5-1: Microframework et PDO

Compréhension

Commencez par installer et tester l'application. Vous devrez tout d'abord installer la base de données disponible dans le fichier sql/database.sql, puis modifier le fichier index.php pour que les paramètres de connexion soient corrects.

Pour installer l'application, utilisez composer:

composer install

1. L'autoloader

L'autoloader utilisé ici est celui de composer. A quoi sert la ligne suivante?

$loader->add('', 'src');

2. Le routeur

Observez le fonctionnement des appels à $app->get() et à $app->post().

Le routeur du framework Slim a été réutilisé ici. Il permet de simplifier le routage des requêtes, ainsi que la génération des url à l'aide de la méthode path_for().

Vous pouvez consulter cette page pour plus d'informations.

3. Modèle

Intéressez vous au code de la classe Cinema\Model, à quoi sert t-elle? Pourquoi regrouper ces méthodes dans une classe?

4. Système de templates

Ici, Twig est utilisé pour le rendu des templates. Observez comment layout.html.twig est défini et comment son block content est surchargé dans les pages filles telles que film.html.twig.

Regardez de plus près l'utilisation de la méthode render(), quel est le rôle des variables qui lui sont passées ?

(Rétro) Conception

A partir de la base de données fournies, dessinez le schéma entité-association de la base de données fournie.

Notes:

  • Attention aux cardinalités
  • Le nombre de table n'est pas forcément égal au nombre d'entités

Ecriture de requête/code

1. Casting d'un film

En écrivant le code de la méthode getCasting() du modèle, écrivez une requête récupérant les acteurs jouant dans un film (prénom, nom et image).

Conseil: vous pouvez utiliser un otuil tel que phpMyAdmin pour réaliser vos requêtes et les essayer sur un exemple avant de les placer dans le code et de les rendre dynamique

<?php
// Attention, vous DEVEZ préparer vos requêtes
// Ne faites SURTOUT PAS ce genre de choses:
$sql = 'SELECT * FROM users WHERE name='.$name; // MAUVAIS

2. Formulaire d'ajout de critique (1)

Remarquez que le formulaire soumet sur la mauvaise page, utilisez path_for() pour le corriger.

3. Formulaire d'ajout de critique (2)

Les films peuvent être critiqué, complétez le code de manière à enregistrer les critiques valides dans la base de données, n'oubliez pas de passer par le modèle.

4. Rendu des critiques

Modifier de nouveau le code pour que les critiques soient récupérées de la base de données puis affichées dans la page sous le film.

5. Classement des films

Ajouter au menu "Meilleurs films" et créez une page affichant le classement des films les mieux notés, c'est à dire ayant la meilleure note moyenne.

6. Affichage des films par genre

Remarquez qu'il est possible de consulter le nombre de films par genre, mais pas de voir la
liste des films d'un genre.

Rendez cliquable la ligne de chaque genre sur la page /genres et faites apparaître la liste des films étant dans le genre concerné.

7. Formulaire d'ajout de film

Créez une page "Ajout de film" servant à ajouter un film à la base. Il doit être possible de définir:

  • Le nom du film
  • Sa description
  • Son année
  • Son genre, parmi les genres de la base de données

Ne vous occupez pas des acteurs qui y jouent (dans la base de données), et les roles qu'ils y occupent