laravel 源码分析-路由是如何调用到控制器

本文深入剖析laravel框架的路由机制,从PHP的超全局变量如何被封装,到HttpFoundation组件的作用,再到laravel的入口文件如何启动路由。详细解释了从`index.php`到`Router`类,再到`Dispatcher`和`RouteCollection`的调用链路,最终如何实例化并执行控制器的方法。通过这个过程,读者将理解laravel路由的内部工作原理。
摘要由CSDN通过智能技术生成

概述

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

路由是如何启动的?

路由启动我们要从原点找起,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值