Rispetto a circa 10 anni fa ho notato uno spostamento verso i framework usando lo stile di routing che disaccoppia il percorso dell'URL dal filesystem. Questo è generalmente realizzato con l'aiuto di un modello di controller frontale.
Vale a dire, quando prima, il percorso dell'URL era mappato direttamente al file system e quindi rifletteva esattamente i file e le cartelle sul disco, al giorno d'oggi i percorsi URL effettivi sono programmati per essere indirizzati a classi specifiche tramite la configurazione e, come tali, non riflettono più il file cartella di sistema e struttura dei file.
Domanda
Come e perché questo è diventato banale? Come e perché è stato deciso che è "migliore" al punto da abbandonare efficacemente l'approccio diretto al file una volta comune?
Altre risposte
C'è una risposta simile qui che va un po 'nel concetto di rotta e alcuni vantaggi e svantaggi: con i framework PHP, perché viene usato il concetto di "rotta"?
Ma non affronta gli aspetti del cambiamento storico, né come o perché questo cambiamento è avvenuto gradualmente, in cui oggigiorno alcuni nuovi progetti stanno praticamente utilizzando questo nuovo modello di stile di routing e direct-to-file è obsoleto o abbandonato.
Inoltre, la maggior parte dei vantaggi e degli svantaggi citati non sembra essere abbastanza significativa da giustificare un simile cambiamento globale. L'unico vantaggio che posso vedere guidando questo cambiamento forse è nascondere il sistema di file / cartelle all'utente finale e anche la mancanza di ?param=value¶m2=value
, il che rende gli URL un po 'più puliti. Ma quelli erano l'unico motivo del cambiamento? E se sì, perché c'erano questi motivi?
Esempi:
Conosco molto bene i framework PHP e molti framework moderni popolari usano questo approccio di routing disaccoppiato. Per farlo funzionare, devi impostare la riscrittura dell'URL in Apache o un server Web simile, in cui la funzionalità dell'applicazione Web in genere non viene più attivata tramite un percorso URL diretto al file.
Zend espressivo
https://docs.zendframework.com/zend-expressive/features/router/aura/
https://docs.zendframework.com/zend-expressive/features/router/fast-route/
https: //docs.zendframework. com / Zend-espressivo / caratteristiche / router / ZF2 /Zend Framework
https://docs.zendframework.com/zend-mvc/routing/
laravel
https://laravel.com/docs/5.5/routing
CakePHP