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 è in genere realizzato con l'aiuto di un modello di controller anteriore.
Precisamente, quando prima, il percorso URL è stato mappato direttamente al file system e quindi riflette file e cartelle esatti su disco, al giorno d'oggi, i percorsi URL effettivi sono programmati per essere indirizzati a classi specifiche tramite configurazione, e come tali, non più riflette la cartella del file system e la struttura del file.
Domanda
Come e perché questo è diventato un luogo comune? Come e perché è stato deciso che è "migliore" fino al punto in cui un approccio tradizionale da "direct-to-file" è stato effettivamente abbandonato?
Altre risposte
C'è una risposta simile qui che va un po 'nel concetto di percorso e alcuni vantaggi e svantaggi: Con framework PHP, perché viene utilizzato il concetto di" route "?
Ma non affronta gli aspetti dei cambiamenti storici, o come o perché questa modifica è avvenuta gradualmente, dove ogni nuovo progetto al giorno d'oggi usa praticamente questo nuovo stile di routing e il direct-to-file è obsoleto o abbandonato.
Inoltre, la maggior parte di questi vantaggi e svantaggi citati, non sembrano abbastanza significativi da giustificare un tale cambiamento globale. L'unico vantaggio che posso vedere alla guida di questo cambiamento forse è nascondere il file / sistema di cartelle all'utente finale e anche la mancanza di ?param=value¶m2=value
, che rende gli URL un po 'più puliti. Ma quelli erano l'unica ragione del cambiamento? E se sì, perché c'erano quelle ragioni dietro di esso?
Esempi:
Sono più familiare con i framework PHP e molti framework moderni popolari utilizzano questo approccio di routing disaccoppiato. Per farlo funzionare, configura la riscrittura degli URL in Apache o in un server Web simile, in cui la funzionalità dell'applicazione Web non viene più attivata tramite un percorso URL diretto al file.
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