Intérêts et désavantages des Front Controller

Lorsque l'on analyse les différents framework web, notamment PHP, mais aussi ruby on rails et django, on voit qu'il utilise tous le pattern Front Controler.

Le pattern Front Controller indique qu'il faut que toutes les requêtes des clients soit géré de manière centralisé par un seul objet : le front controller.

Quel est l'intérêt ou au contraire, qu'elle sont les désavantages d'utiliser ce pattern.

Poser: 10 juillet 2011, 11:15
epommate
232

1 réponse

-1

Je vois pas mal de désavantage, notamment en PHP :

  • le système de log du serveur (apache) est incapable de nous dire quelles pages l'utilisateur à visité : tous sera fait dans index.php
  • Le front controller agit comme objet universel dans le sens ou il doit connaitre tous les autres objets (même s'il les appelle de manière dynamique)
  • une erreur de syntaxe sur une page provoque l'indisponibilité complète du site.

Au niveau des avantages, il y a effectivement l'économie d'au moins une inclusion dans chaque fichier.

Répondu: 10 juillet 2011, 11:22
epommate
232

Je ne suis d'accord avec aucun de tes points ::

Déjà il me semble qu'il est possible de récupérer l'URL complet de la page appelé dans les logs Apache, mais sans parler de ça, les logs PHP permettent de repérer précisément la page fautive, on peut de plus définir dans la Contrôleur frontal des Logger, mais je te l'accorde, ça ne facilite pas le Debug. Totalement faux, la Contrôleur Frontal agit comme une Fabrique Abstraite, il déduit le nom de l'appel en fonction de la requête du client, il n'a pas besoin de connaître toutes les classes/méthodes. ça faut m'expliquer, le contrôleur frontal n'inclus que la contrôleur demandé, pas l'ensemble des contrôleurs.

Pour moi les deux défauts du contrôleur frontal sous la surcharge de ressources occasionnée ainsi que la complexité introduite.

Black11 juillet 2011, 07:48

Votre réponse


Aide sur le formatage »
Ce n'est pas la réponse que vous chercher ? Parcourez les questions avec une étiquette front-controller design-pattern web langage-agnostique ou poser votre propre question
logo_rss Flux de la question