laravel的routes里写Route::和$router->有什么区别吗?

silence_iris
  • 402

看别人的代码里好像很多用$router->的,看手册里好像都是Route::,这俩方式有什么区别吗?

评论
阅读 4.1k
2 个回答
✓ 已被采纳

Route::get这种写法在laravel里叫做Facades,本义是为了写起来方便而造出来的。

它等价于$app->make('router')->get;

也是从服务容器里取出来的,提供路由服务的是 App\Providers\RouteServiceProvider

如果你通过依赖注入里拿到$router那么,它也等价于$app->make('router'),也等价于Route::这个Facades

你可以参考一下Facades的文档理解一下
http://laravel.com/docs/5.2/facades

Route::get这种静态调用使用了魔术方法__callStatic构造出来的。本质上是Router->get,相当于别名,没啥区别。

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏