[Laravel 5.3 新功能] 9. 路由相关修改

教程 monkey ⋅ 于 1年前 ⋅ 最后回复由 lzh1104 1个月前 ⋅ 5184 阅读

说明

此文章是 [Laravel 5.3 新功能] 系列的第九篇文章,路由相关修改。

[Laravel 5.3 新功能] 系列完整文章列表请见:https://laravel-china.org/topics/2638

回顾 5.2 路由的修改

在 Laravel 5.2 的 routes.php 文件中,我们可以看到路由被分割成两个路由群组:web 和 api。

web 路由组提供了普通 web 应具有的所有功能:如 session、cookie、CSRF 等等。而 api 路由组更加轻量化,只提供了 throttle 中间件,以便提供无状态的 REST API。

5.3 路由的修改

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

这样做有很多好处:

  1. 我们实现了 web 路由和 api 路由的分离;
  2. 可以在应用级层面设置多个路由文件;
  3. 将 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 China 社区
本帖已被设为精华帖!
本帖由系统于 1年前 自动加精
回复数量: 6
暂无评论~~

  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!