Laravel 分割 routes.php 路由文件的最佳方式
来源:互联网 发布:mt4数据导出系统 编辑:程序博客网 时间:2024/05/24 22:41
Laravel 的路由功能很强大, 路由规则默认都定义在 routes.php 文件中,但是随着项目越来越大, 我们需要的定义的规则越来越多, 如果几百上千个路由都定义在一个文件中, 如何去维护? 如果不同的人都在同一个文件定义路由, 这就造成了冲突, 因此我们有必要将 routes.php 文件分割成多个文件, 可以按照功能模块来划分, 下面介绍一种很优雅的方式.
在 Laravel 5.1 LTS
版本 app/Providers/RouteServiceProvider.php
的map
方法中可以如下定义:
<?phpnamespace App\Providers;use Illuminate\Routing\Router; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Route;class RouteServiceProvider extends ServiceProvider { /** * This namespace is applied to the controller routes in your routes file. * * In addition, it is set as the URL generator's root namespace. * * @var string */ protected $namespace = 'App\Http\Controllers'; protected $api_namespace = 'App\Http\ApiControllers'; /** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { $router->pattern('id', '[0-9]+'); parent::boot($router); } /** * Define the routes for the application. * * @param \Illuminate\Routing\Router $router * @return void */ public function map(Router $router) { $this->mapWebRoutes(); $this->mapApiRoutes(); } /** * Web 路由 */ protected function mapWebRoutes() { Route::group([ 'namespace' => $this->namespace, 'middleware' => 'restrict_web_access', ], function ($router) { require base_path('routes/web.php'); }); } /** * Api 路由 */ protected function mapApiRoutes() { $api_router = app('Dingo\Api\Routing\Router'); $api_router->group([ 'version' => config('api.prefix'), 'namespace' => $this->api_namespace, ], function ($router) { require base_path('routes/api.php'); }); }}
文件夹结构如下:
通过把路由规则分割写到不同的文件中, 这样一来, 就可以根据功能模块分开管理路由文件了. 此外, 你也可以简单的分割, 直接把 routes.php
中的定义拆散成多个文件, 通过require
的方式引入.
那么这样路由分开多个文件后岂不是增加调用次数, 会不会影响性能? 答案是不必担心. 通过 Laravel 的命令:
php artisan route:cache
生成路由缓存文件后, 路由只会读取缓存文件的路由规则, 因此不会影响性能, 这样做让开发更高效和规范.
0 0
- Laravel 分割 routes.php 路由文件的最佳方式
- Laravel最佳分割路由文件(routes.php)的方式
- laravel路由文件分割
- Laravel之路由(Routes)
- laravel---路由分割
- codeiginter -- 路由配置 routes.php
- laravel routes除了默认路由,其他都无效 解决办法
- PHP 文件的分割
- thinkphp 2.1 中 routes.php 中配置的路由无效的解决方案
- Laravel的路由管理
- laravel 路由的demo
- rails routes路由笔记
- laravel5.3分割路由文件
- ci 的routes里可以自定义路由内容
- CI框架(十一)routes.php的使用
- php Laravel框架学习(三) 之 路由
- [李景山php]每天laravel[024]-laravel 基础知识 --- 路由
- php 文件的分割与合并
- nyoj6_喷水装置1
- 7z源码的分析
- Fiddler和Wireshark网络抓包实践
- 聊聊并发(四)——深入分析ConcurrentHashMap
- 正则表达式规则
- Laravel 分割 routes.php 路由文件的最佳方式
- jdbc 获取 自增主键值
- iWebShop如何替换短信接口
- 《中国民间传说》
- 【C++】学习笔记十四——C++ primer plus第六版第4章编程练习
- 万维网发布服务(w3svc)以停止。除非万维网发布服务(w3svc)
- github(1)
- C语言/C++文件的读取与写入操作
- OpenFileDialog 类型名和文件名冲突,类无法使用