概述
laravel 的路由相比其他PHP框架非常灵活和优雅,它也能做的在url不变的情况下改变调用的控制器和方法。
那么这到底在 laravel 里是怎么完成的呢
路由到底是如何获取的?
这没什么神秘的,回忆一下我们写一个单页过程化 PHP 脚本时我们是如何接收 HTML 页面传输的参数的?
是的,也许你想起来了我们会使用 PHP 的超全局变量 $_SERVER
、$_GET
、$_POST
等等,是的框架的底层同样是使用它们的,只是框架进行了更详尽的封装。
laravel 对 Symfony 框架提供的 HttpFoundation 组件,这个组件对 HTTP 进行了面向对象封装,laravel在其基础上又进行了封装,以适合 laravel 框架自身的需求。
HttpFoundation 组件将 $_GET
、$_POST
、$_FILES
、$_COOKIE
等一些超全局变量进行封装,不仅将超全局变量调用转变为面向对象的方式,而且也简化了操作。比如 Symfony\Component\HttpFoundation\Request::createFromGlobals()
的返回值就是所有超全局组成的一个集合。
如果你对这个组件感兴趣可以查看其文档 HttpFoundation
路由是如何启动的?
路由启动我们要从原点找起,那么