Comparado a cerca de 10 anos atrás, observei uma mudança em direção a estruturas usando o estilo de roteamento que desacopla o caminho da URL do sistema de arquivos. Isso geralmente é realizado com a ajuda de um padrão de controlador frontal.
Nomeadamente, quando antes, o caminho da URL era mapeado diretamente para o sistema de arquivos e, portanto, refletia arquivos e pastas exatos no disco. Atualmente, os caminhos da URL reais são programados para serem direcionados a classes específicas via configuração e, como tal, não refletem mais o arquivo pasta do sistema e estrutura de arquivos.
Pergunta, questão
Como e por que isso se tornou comum? Como e por que foi decidido que é "melhor" ao ponto em que a abordagem direta ao arquivo, antes comum, foi efetivamente abandonada?
Outras respostas
Há uma resposta semelhante aqui que entra um pouco no conceito de rota e alguns benefícios e desvantagens: Com estruturas PHP, por que o conceito de "rota" é usado?
Mas ele não trata dos aspectos históricos da mudança, ou como ou por que essa mudança aconteceu gradualmente, para onde novos projetos atualmente estão usando esse novo padrão de estilo de roteamento e o arquivo direto está desatualizado ou abandonado.
Além disso, a maioria dos benefícios e desvantagens mencionados não parece ser significativa o suficiente para justificar uma mudança global. O único benefício que posso ver impulsionando essa mudança talvez seja ocultar o sistema de arquivos / pastas do usuário final e também a falta de ?param=value¶m2=value
, o que faz com que os URLs pareçam um pouco mais limpos. Mas esses eram os únicos motivos da mudança? E se sim, por que essas razões estavam por trás disso?
Exemplos:
Eu estou mais familiarizado com estruturas PHP e muitas estruturas modernas populares usam essa abordagem de roteamento desacoplado. Para fazê-lo funcionar, você configura a reescrita de URL no Apache ou em um servidor da Web semelhante, para onde a funcionalidade do aplicativo da Web geralmente não é mais acionada por um caminho de URL direto para o arquivo.
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 / roteador / zf2 /Zend Framework
https://docs.zendframework.com/zend-mvc/routing/
Laravel
https://laravel.com/docs/5.5/routing
CakePHP