laravel 里的路由是由RouteServiceProvider提供的,其中的boot方法为启动项,调用了父类的boot方法。
RouteServiceProvider中的boot方法设置了自己与UrlGenerator类的根命名空间。
通过bootstrap/cache/routes.php处的缓存文件判断路由是否已缓存,分别从缓存与路由类读取。
 
给app容器加载booted钩子函数,函数内执行了RouteCollection类的refreshNameLookups与refreshActionLookups方法,遍历路由文件,并分别更新name与action列表,action列表存储调用controller的路由,如下图 action ['controller']属性。
 
"HEADtest/{id?}/{ip?}" => Route {#119 ▼
+uri: "test/{id?}/{ip?}"
+methods: array:2 [▶]
+action: array:6 [▼
"middleware" => array:1 [▶]
"uses" => "App\Http\Controllers\testController@exportExcel"
"controller" => "App\Http\Controllers\testController@exportExcel"
"namespace" => "App\Http\Controllers"
"prefix" => null
"where" => []
]
+isFallback: false
+controller: null
+defaults: []
+wheres: []
+parameters: null
+parameterNames: null
+computedMiddleware: null
+compiled: null
#router: Router {#25}
#container: Application {#2}
}
路由文件里的route::any等门面类调用的方法,在router类里调用addRoute方法,将创建好的route对象传入RouteCollection类里,存储在路由字典里,方便调用
Router创建Route,添加到RouteCollection。

最新文章

  1. PostgreSQL 9.3发布
  2. TiD大会学习心得之沟通交流
  3. 【读书笔记】.Net并行编程高级教程(二)-- 任务并行
  4. Dapper.NET 使用简单举例
  5. curl/wget 测试http请求的响应头信息
  6. getting started with building a ROS simulation platform for Deep Reinforcement Learning
  7. 数往知来 ASP.NET_多线程_Socket<十五>
  8. Gradle实战:发布aar包到maven仓库
  9. Unescape HTML entities in Javascript Unescape HTML转成html代码
  10. ASP超级网店V2.5一注入漏洞
  11. Html小插件
  12. ArcGIS10.2直连PostgreSQL存在问题
  13. java集合框架02——Collection架构与源码分析
  14. 让BLE设备的名称包含MAC地址
  15. WP Super Cache+七牛云配置CDN加速,让你的网站秒开
  16. ANI功能分析
  17. 巡风源码阅读与分析---view.py
  18. (已解决)Xcode 运行报错: clang: error: unknown argument: '-websockets'
  19. Kafka常用命令收录
  20. solr后台界面介绍——(十一)

热门文章

  1. 从golang-gin-realworld-example-app项目学写httpapi (二)
  2. Docker的一些常用命令
  3. Java学习---异常处理的学习
  4. Win10开启PIN码使用教程
  5. 沉淀再出发:Bean,JavaBean,POJO,VO,PO,EJB等名词的异同
  6. 获取当前模块句柄(dll、exe)
  7. css根据屏幕大小切换样式
  8. 【NOIP2014】解方程
  9. POJ3041 Asteroids(匈牙利算法)
  10. 坑之OJ-玄学、不可抗力