Académique Documents
Professionnel Documents
Culture Documents
Cours-Workshop1 Install MVC
Cours-Workshop1 Install MVC
Les controlleurs
Les actions avec passage de paramètres
Le routage dans des fichiers yml et en mode annotation
L’affichage via twig et l’objet response
C’est la couche MVC du framework. Dans la suite de ce workshop, nous utilisons « Visual
Studio Code » comme IDE de développement.
Un controlleur n’est autre qu’une classe PHP contenant des méthodes qui
s’exécutent une fois elles « match » une url(« route »). Dans une prèmière étape, nous
créons un controller de façons manuelle, suite à ça nous allons installer un bundle externe
Créons notre premier controlleur « FirstController » sous le repertoire Controller.
La convention ici est que tout controlleur doit être préfixé par le mot clé Controller.
Src\Controller\FirstController.php :
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
class FirstController
Nous avons également utiliser l’objet Response pour afficher du contenu sur navigateur.
Dans une deuxième étape, il faut associer à cette action une route. Allez au fichier
« config/routes.yaml » et ajouter les 3 lignes suivantes
first_controller_userID_route:
path: /first/userid
controller: App\Controller\FirstController::userID
);
127.0.0.1 :8000/first/symfony/Faycel
Vous obtenez l’affichage suivant dans votre navigateur :
On peut également faire un debug afin de lister les différentes routes disponibles dans
notre projet. Tapez la commande : php /bin/console debug :router
Maintenant créons une action qui est accessible via les annotations :
1-Faites l’import suivant : use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/first/index")
*/
Pour afficher un contenu issu d’une méthode, On peut également utiliser TWIG : c’est un
moteur de templating comme on l’appel permettant de gérer la partie vue du framework.
Ainsi tout controlleur doit hériter de la classe AbstractControlleur est ceci afin de
bénificier de plusieur méthodes telque « render() ». Il est également conseiller de choir un
nom de dossier des vues comme celui du controlleur. Avec le moteur de template twig,
on peut faire plein de choses qu’on ne peut pas faire dans un fichier html classique :
Tout d’abord, on peut remarquer que notre barre de débogage est disparue, ceci est due
au fait que notre vue est dépourvue de partie <body></body>. Pour ce faire on va
apporter les modifications suivantes à nos vues « index.html.twig » et « base.html.twig »
(qui représente le template père de toute l’application).
On remarque la présence de « block ». Au fait ce sont des zones qui pouvant être
remplacer par un template fils.
On peut également boucler sur des collections qu’on récupère depuis les actions.
Exemple tableaux contenant la liste des candidats :
2-Chaque candidats est caractérisé par : (id, nom, prénom, email, photo, adresse, age,
biographie)
3-Associer à cette action une route dans le fichier routes.yaml.
4-Créer une vue « list.html.twig » permettant d’afficher dans un tableau la liste des
candidats. Le tableau doit afficher seulement les informations (id, nom, prenom, email)
5-Ajouter la bibliothèque bootstrap 4 dans votre projet et apporter à votre vue un effet
responsive.
6-Créer une nouvelle action « public function showCandidat($id){…} ». Cette fonction
va nous permettre d’afficher le reste des informations (image, age, adresse, biographie)
d’un candidats données dans une autre vue « showCandidat.html.twig » si on clique sur
son id dans le tableau situé dans la page « listCandidats.html.twig »
Bon travail !