Par rapport à il y a environ 10 ans, j'ai noté une évolution vers des frameworks utilisant le style de routage qui dissocie le chemin de l'URL du système de fichiers. Ceci est généralement accompli à l'aide d'un modèle de contrôleur frontal.
À savoir, quand auparavant, le chemin de l'URL était mappé directement sur le système de fichiers et reflétait donc les fichiers et dossiers exacts sur le disque. De nos jours, les chemins d'URL réels sont programmés pour être dirigés vers des classes spécifiques via la configuration et, en tant que tels, ne reflètent plus le fichier. dossier système et structure de fichier.
Question
Comment et pourquoi cela est-il devenu banal? Comment et pourquoi a-t-on décidé qu'il était "préférable" au point où l'approche autrefois banale du traitement direct au fichier a effectivement été abandonnée?
Autres réponses
Il y a une réponse similaire ici qui va un peu dans le concept de route, avec quelques avantages et inconvénients: Avec les frameworks PHP, pourquoi utilise-t-on le concept de "route"?
Mais il ne traite pas des aspects des changements historiques, ni comment ni pourquoi ces changements se sont produits progressivement, où de nouveaux projets utilisent aujourd'hui ce nouveau modèle de style de routage et où le traitement direct dans un fichier est obsolète ou abandonné.
En outre, la plupart des avantages et inconvénients mentionnés ne semblent pas être suffisamment importants pour justifier un tel changement mondial. Le seul avantage que je peux constater à l’origine de cette modification est peut-être de cacher le système de fichiers / dossiers à l’utilisateur final, ainsi que l’absence de ?param=value¶m2=value
, ce qui donne aux URL un aspect plus pur. Mais étaient-ce la seule raison du changement? Et si oui, pourquoi ces raisons étaient- elles derrière?
Exemples:
Je connais très bien les frameworks PHP et de nombreux frameworks modernes utilisent cette approche de routage découplé. Pour que cela fonctionne, vous configurez la réécriture d'URL dans Apache ou un serveur Web similaire, afin que la fonctionnalité d'application Web ne soit généralement plus déclenchée via un chemin d'URL direct vers un fichier.
Zend Expressive
https://docs.zendframework.com/zend-expressive/features/router/aura/
https://docs.zendframework.com/zend-expressive/features/router/fast-route/
https: //docs.zendframework. com / zend-expressive / features / router / zf2 /Zend Framework
https://docs.zendframework.com/zend-mvc/routing/
Laravel
https://laravel.com/docs/5.5/routing
CakePHP