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

说明

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

[Laravel 5.3 新功能] 系列完整文章列表请见:分享:[Laravel 5.3 新功能] 系列文章

回顾 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');
        });
    }

这样就可以非常简单的创建自己的路由文件了。

全文完。

链接

本帖已被设为精华帖!
本帖由系统于 7年前 自动加精
monkey
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5

这个好,还在想该如何分开 api 和 web 呢,这直接就是一个思路

7年前 评论
Destiny

:punch: 铧哥, 顶一个!

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!