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

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

阅读 3.8k
评论
    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,相当于别名,没啥区别。

        撰写回答

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