Créer framework PHP : Contrôleur Frontal
Le contrôleur frontal est le point d'entrée de notre application. Il s'agit du fichier index.php interrogé par la requête HTTP.
Rôle du contrôleur frontal
Le rôle d’un contrôleur frontal est de capter la requête HTTP puis opérer sur le serveur de sorte à retourner une réponse HTTP adaptée au client.
Sans contrôleur frontal
Lorsqu’un utilisateur navigue sur un site web, il envoie une requête HTTP au serveur qui va traiter sa demande.
- Si j’accède à l’URL plugo.local/home.php, je demande au serveur de me retourner la page d’accueil.
- Si j’accède à l’URL plugo.local/contact.php, je demande au serveur de me retourner la page de contact.
- etc.
Ici, le code chargé de retourner la réponse HTTP (bien souvent une page HTML) doit être écrit dans les fichiers 📄 home.php
et 📄 contact.php
.
En plus de cela, cette approche ne va pas dans le sens du principe du DRY (Dont Repeat Yourself) ; il y a de fortes chances pour que l’on duplique nos balises de premier niveau (<html>
, <head>
et <body>
) sur chaque page ou que l’on fasse des magouilles d’inclusion… 😢
Bref, cette façon de faire n’est pas idéale.
Avec contrôleur frontal
Nous préférerons alors exploiter les pseudo-frames. Cette mécanique permet de retourner des pages différentes (via une inclusion dynamique) en envoyant toutes nos requêtes HTTP vers un seul et unique fichier 📄 index.php
et en faisant passer l’information de la page souhaitée via un paramètre d’URL GET
.
- Si j’accède à l’URL plugo.local/index.php?page=home, je demande au serveur de me retourner la page d’accueil.
- Si j’accède à l’URL plugo.local/index.php?page=contact, je demande au serveur de me retourner la page de contact.
- etc.
Les avantages principaux de cette approche sont les suivants :
- Seul un fichier va contenir le code visant à construire la réponse HTTP
- Il sera plus aisé de structurer et factoriser les templates
Ce micro-framework ne déroge pas à la règle et nous allons y intégrer cette mécanique.
Désormais, tous nos appels au serveur passeront par le fichier 📄 index.php
situé à la racine du serveur web. C’est l’unique point d’entrée de notre application ; on parle de contrôleur frontal.
Création du contrôleur frontal
En vous rendant à l’adresse plugo.local (si création préalable d’un virtual host) ou encore à l’adresse localhost/nom-projet/public, le fichier 📄 index.php
devrait apparaître dans votre navigateur ! Et sans suspense, on obtient… une page blanche. 👻
Pour l’instant laissons ce fichier vierge, nous le ferons évoluer par la suite.