前言
大家可能沒有注意到, 在 Laravel 4 以及更老版本中, 路由邏輯是性能上的一個瓶頸--特別是對於有很多路由定義的應用而言. 一個只有幾百條路由定義的 Laravel 站點, 框架光注冊路由就需要半秒多的時間. 不過以後不用擔心這個問題了, 因為 Laravel 5 引入了 路由緩存(route caching), 可以大大優化路由的性能(閉包方式定義的路由不能緩存, 所以該把所有的閉包路由定義都移到控制器中了).
1、回顧Laravel 5.2中路由的修改
在 Laravel 5.2 的routes.php中我們可以看到路由被分割成兩個路由群組:web和api,這樣做的原因是基於中間件群組的理念:開箱即可擁有web和api兩組路由。
web路由組提供了普通web用戶所需的所有功能特性:如session、cookie、CSRF防護等等,相比之下,api路由組更加輕量級,只提供了throttle中間件,以便提供無狀態的REST API。
2、Laravel 5.3 中路由的修改
在Laravel 5.3中,app/Http/routes.php
文件被移動到routes目錄下,並且被分割成兩個文件:web.php和api.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'); }); }
總結
很簡單吧,參照這段代碼應該可以很輕松創建自己獨立的路由文件。以上就是修改Laravel5.3中路由文件及路徑的全部內容,希望本文對大家學習Laravel5.3有所幫助。