Afficher ses pages avec un Controller
Les controllers, comme nous l'avons dit hier, sont responsables de la logie métier au sein de votre site. Parmi les grands axes possibles parmi la logique métier, nous allons approfondir trois d'entre eux aujourd'hui :
la préparation des données pour l'affichage
le traitement des formulaires
les interactions avec les services
Les Controllers et l'affichage
Le Controller a pour rôle de centraliser les données à présenter sur une page, éventuellement de les formater si nécessaire, puis d'appeler le template "layout" en lui indiquant quel template et quelles données afficher.
Ces données peuvent être en dur, venir d'un fichier, d'une API ou d'une base de données.
Nous verrons les Models et Managers plus tard dans la semaine donc pour aujourd'hui, nos données proviendront de fichiers.
L'AbstractController
Tous nos controllers auront au moins deux méthodes en commun :
render, la méthode qui prépare le template à afficher et lui transmet les donnéesredirect, la méthode qui permet de rediriger une page en cas de besoin
Comme ces deux méthodes seront présentes pour tous les controllers, nous les plaçons dans une classe abstraite AbstractController dont nos Controllers hériteront.
Le Controller
Nos controllers vont donc tous hériter d'AbstractController, puis préparer des données et template pour l'affichage :
Et dans le template pour récupérer les données que je veux afficher, j'utilise le tableau associatif $data qui a été créé au moment de l'appel de la méthode render: