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.

Icône de calendrier
Avancé
10 chapitres

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.

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.