- L'utilisation de make est interdite !
- Réaliser les exercices dans le sens que l'on veut mais, le projet doit pouvoir se lancer.
- Temps pour la réalisation des exercices : 1h!
- Bien lire tout l'énoncé d'un exercice avant de commencer à coder.
- Toutes les consignes ne sont pas testées, faites attention nous regarderons vos codes ensuite.
- L'objectif final est de posséder un site 100% fonctionnel.
- Un commit initial est demandé puis, un commit à la fin de chaque exercice et enfin, un commit final.
- Faire un Fork du projet
- Puis, un git clone
- Puis, changer le remote url . Le push directement sur la branche distante peut être éliminatoire. Car semblable à une mise en down d'un site.
- Lancer composer install.
- Faire un yarn install
- Puis yarn encore dev
- Faire un symfony server:start ou un php -S 127.0.0.1:8000 -t public
- Lancer /bin/phpunit tests/Exercice1 pour voir si l'exercice est réussi
- Créer l'entité Product (Commande make autorisée pour cet exercice seulement)
- Ajouter les propriétés suivantes :
- "name", type : string, length : 255, non nullable
- "priceHt", type : float, non nullable
- "creationDate", type : datetime, non nullable
- "dateUpdate", type : datetime, nullable
- Mettre a jour le .env avec vos connections mysql sans en créer d'autre
- Lancer ./bin/phpunit tests/Exercice2 pour voir si l'exercice est réussi
- Créer le ProductController (Commande make interdite)
- Créer la méthode index avec l'url correspondante : /product
- Cette méthode doit comporter une requête visant à récupérer tous les produits
- Faire en sorte que la méthode aille vers le template déjà créé dans templates/product/index.html.twig
- Envoyer dans le template le résultat de la requête en nommant votre variable envoyée vers le front par : products
- Rajouter le lien vers la page produit dans le header
- Lancer ./bin/phpunit tests/Exercice3 pour voir si l'exercice est réussi
- Créer la méthode new dans le ProductController
- L'url de cette méthode doit être /product/new
- Faire le rendu sur le template situé dans /templates/product/new.html.twig
- Créer le FormType ProductType qui permettra d'ajouter un nouveau produit (sans le maker)
- Faire attention à bien prendre en compte les propriétés de l'entité Product pour construire le formulaire
- Ne pas ajouter les champs dateCreation et dateUpdate
- Les champs doivent avoir un label et un placeholder obligatoirement
- Le champs creationDate doit être rempli par le serveur lors de la soumission du formulaire et non par l'utilisateur
- Le champs dateUpdate ne doit pas être rempli
- Le bouton de soumission doit avoir inscrit comme label : "Ajouter"
- A la soumission du formulaire, il faut que l'entité soit bien enregistrée en base de donnée
- A la soumission du formulaire, il faut rediriger l'utilisateur vers la route dont l'url est /product
- Le formulaire doit être construit dans le fichier existant : /templates/product/include/_form.html.twig
- Lancer ./bin/phpunit tests/Exercice4 pour voir si l'exercice est réussi
- Créer la méthode edit dans le ProductController
- L'url de cette méthode doit être /product/edit/{id}
- Faire le rendu sur le template /templates/product/edit.html.twig
- Utiliser le ProductType dans cette méthode
- Les informations du produit doivent bien être visible dans les champs correspondants
- Le champs creationDate ne doit pas être modifié
- Le champs dateUpdate doit être rempli par le serveur lors de la soumission du formulaire
- A la soumission du formulaire, il faut que l'entité soit bien modifiée
- A la soumission du formulaire, il faut rediriger l'utilisateur vers la route dont l'url est /product
- Mettre à jour le template templates/product/index.html.twig pour que le lien éditer fonctionne
- Lancer ./bin/phpunit tests/Exercice5 pour voir si l'exercice est réussi. Moins de choses sont testées sur cette partie. Vous devez vous faire confiance
- Créer la méthode delete dans le ProductController
- L'url de cette méthode doit être /product/delete/{id}
- Il faut qu'en cliquant, l'entité soit supprimée en base de donnée
- L'utilisateur doit revenir sur la page /product et l'entrée en base de donnée doit être supprimée
- Mettre à jour le template templates/product/index.html.twig pour que le lien supprimer fonctionne
- Aucun test n'existe pour cette partie, à vous de vous faire confiance
- Remplacer la requête de récupération de tous les produits situés dans l'index du ProductController par un queryBuilder qui permet la récupération de tous les produits sans dateUpdate.
- La requête doit etre placée au bon endroit et remplacer l'ancienne.
- Elle doit abolument être faites en DQL (Query Builder)
- Aucun test ne permet de vérifier le résultat, faites vous confiance