Laravel 5.3 新特性系列 —— 路由文件及路径修改


1、回顾Laravel 5.2中路由的修改

在 Laravel 5.2 的routes.php中我们可以看到路由被分割成两个路由群组:webapi,这样做的原因是基于中间件群组的理念:开箱即可拥有webapi两组路由。

web路由组提供了普通web用户所需的所有功能特性:如session、cookie、CSRF防护等等,相比之下,api路由组更加轻量级,只提供了throttle中间件,以便提供无状态的REST API。

2、Laravel 5.3 中路由的修改

在Laravel 5.3中,app/Http/routes.php文件被移动到routes目录下,并且被分割成两个文件:web.phpapi.php。你可能已经猜到了,web.php中的路由应用了web中间件组,而api.php中的路由应用了api中间件组。

这样做有一些好处,首先,我们实现了web路由和api路由的分离,其次,可以在应用级层面组织多个路由文件,最后,将routes移出app目录,对新手而言,可以更快访问到routes目录,并且让app目录完全成为PSR-4自动加载的目录。

如果你想要自定义或者添加自己的独立路由文件,参考App\Providers\RouteServiceProvider获取思路:

...
public function map()
{
    $this->mapWebRoutes();
    $this->mapApiRoutes();
    //
}

protected function mapWebRoutes()
{
    Route::group([
        'namespace' => $this->namespace, 
        'middleware' => 'web',
    ], function ($router) {
        require base_path('routes/web.php');
    });
}

protected function mapApiRoutes()
{
    Route::group([
        'middleware' => ['api', 'auth:api'],
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}

很简单吧,参照这段代码应该可以很轻松创建自己独立的路由文件。


点赞 取消点赞 收藏 取消收藏

<< 上一篇: Laravel 5.4 新特性系列 —— 新增对集合元素的高阶消息传递支持

>> 下一篇: Laravel 5.3 新特性系列 —— 更简单地自定义分页模板