Srikanth a une bonne réponse. Je voudrais développer sur l'alternative, cependant. Supposons que vous ayez cette hiérarchie simple URL:
/gallery
/blog
/admin/login
/admin/newpost
Si cela est mis en œuvre avec les contrôleurs de la page (PHP, par exemple), à la fois gallery.php
et blog.php
devront inclure certains common.php
au début (ou à proximité). Cependant, les deux login.php
et newpost.php
peuvent inclure admin-common.php
, qui tire lui-même dans 'common.php' et fait l'installation spécifique '/ admin /', comme pour vérifier que l'utilisateur est authentifié.
En général, si vous avez une hiérarchie d'URL, il finit par ressembler à des arborescences d'héritage d'objets. Sauf au lieu d'utiliser l'héritage au niveau de la langue, vous héritez de l'environnement de tout ce que vous incluez.
Je ne peux pas imaginer comment un contrôleur frontal augmente la testabilité, En fin de compte, les mêmes tests d'un agent utilisateur HTTP automatique sont requis, indépendamment de l'implémentation. Un inconvénient majeur des contrôleurs de page est qu'il rend votre application Web dépendante de son environnement d'hébergement.Cela oblige aussi vos développeurs à "voir" la même structure que les utilisateurs finaux, mais je considère cela comme une bonne chose, compte tenu du nombre de sites que je vois qui ont des URL absolument atroces.
"Il n'est pas possible de mettre à l'échelle une application à l'aide d'un contrôleur frontal." Cela semble évident juste à cause de la façon dont les URI aux classes doivent être mappés, mais combien mieux PHP va-t-il fonctionner une fois que l'accès aux données et les E/S auront été considérés? –
@FredWilson Mon point à propos de la mise à l'échelle est que si vous utilisez un contrôleur frontal, cela signifie que chaque requête va à un seul point d'entrée sur tous les serveurs. Si vous avez des points d'entrée distincts pour chaque partie d'une application, vous pouvez mettre à l'échelle chaque pièce individuellement, par exemple. une application de messagerie: vous pouvez allouer plus de serveurs à l'adresse read-email.php qu'à send-email.php car les utilisateurs lisent généralement les e-mails plus souvent que les envoyer. Cela ne peut pas être réalisé avec un contrôleur frontal, vous devrez mettre à l'échelle toutes les éventualités ensemble. – Pete
Cette information est-elle toujours pertinente? Les frameworks comme Laravel, Zend Framework, Expressive, et bien d'autres semblent utiliser le pattern contrôleur frontal exclusivement et le routage direct vers les fichiers est appelé "obsolète" .. (https://stackoverflow.com/questions/48079853/what- sont-ces-routage-styles-appelé-dans-une-application-web? noredirect = 1 # comment83133888_48079853) – Dennis