10
现代Web应用程序框架如何以及为什么演变为将URL路由与文件系统分离?
与大约10年前相比,我已经注意到使用路由样式将URL路径与文件系统分离的框架向框架的转变。这通常是在前控制器模式的帮助下完成的。 即,以前,URL路径直接映射到文件系统,因此反映了磁盘上的确切文件和文件夹,如今,实际的URL路径已编程为通过配置定向到特定的类,因此不再反映文件系统文件夹和文件结构。 题 这如何以及为什么变得司空见惯?它如何以及为什么决定将其“更好”到有效地摒弃了曾经司空见惯的直接归档方法? 其他答案 这里有一个类似的答案,有点涉及路由的概念以及一些优点和缺点:对于PHP框架,为什么要使用“路由”概念? 但是,它没有解决历史变化方面的问题,也没有解决这种变化如何或为什么逐渐发生的问题,到如今使用这种新的路由样式模式的新项目几乎都在哪里,而直接归档已经过时或被放弃了。 同样,提到的大多数优缺点似乎不足以保证进行这样的全球变更。我能看到推动这一变化的唯一好处也许是向最终用户隐藏了文件/文件夹系统,并且缺少?param=value&param2=value,这使得URL看起来有点干净。但是,这些是改变的唯一原因吗?如果是,为什么背后有这些原因? 例子: 我最熟悉PHP框架,许多流行的现代框架都使用这种分离的路由方法。为了使其正常工作,您可以在Apache或类似的Web服务器中设置URL重写,在该URL中,通常不再通过直接指向文件的URL路径触发Web应用程序功能。 Zend表现力 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框架 https://docs.zendframework.com/zend-mvc/routing/ 拉拉韦尔 https://laravel.com/docs/5.5/routing CakePHP https://book.cakephp.org/3.0/en/development/routing.html