lumen 项目根目录_在Lumen路由中使用嵌套路由群组
前段时间写的古诗词文api使用了,Dingo/api,tymondesigns/jwt-auth。
为了更加方便,而不是局限于Dingo/api框架中,我使用spatie/laravel-fractal,和lsxiao/jwt-auth,来替代前面的两个扩展包。
但是Dingo/api是支持嵌套路由群组的,而lumen自带的route不支持嵌套路由群组,这将会导致路由代码量增多,且不方便维护。
例如如下的路由,lumen是不支持的,因为有两层群组嵌套。
//诗词$app->group(['prefix' => 'posts'], function () use ($app) {
$app->get('', [
'as' => 'posts.index',
'uses' => 'PostController@index',
]);
$app->get('{id}', [
'as' => 'posts.show',
'uses' => 'PostController@show',
]);
//需要认证的路由 $app->group(['middleware' => 'jwt.auth'], function () use ($app) {
//收藏某诗词 $app->post('{id}/collect', [
'as' => 'posts.collect',
'uses' => 'PostController@collect',
]);
//取消收藏某诗词 $app->post('{id}/uncollect', [
'as' => 'posts.uncollect',
'uses' => 'PostController@uncollect',
]);
//喜欢某诗词 $app->post('{id}/like', [
'as' => 'posts.like',
'uses' => 'PostController@like',
]);
//取消喜欢某诗词 $app->post('{id}/unlike', [
'as' => 'posts.unlike',
'uses' => 'PostController@unlike',
]);
});
});
所以我就去lumen的issues里面看,果然已经有很多相关的回答了,相关开发者回应说,没有支持嵌套路由群组的计划,理由是Lumen是一个微型框架,所以在路由设计上并没有实现Laravel的嵌套路由,如果要使用嵌套路由群组,请使用Laravel。
但是我就是想在Lumen上用嵌套路由群组怎么办?
广大的githuber是不会因为这个操蛋的不支持的回答而放弃的,之后我发现了下面的好东西。
安装
composer require "fremail/lumen-nested-route-groups:~1.0"
配置
在bootstrap/app.php文件中,将Application class替换掉。
替换前
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
替换后
$app = new Fremail\NestedRouteGroups\Application(
realpath(__DIR__.'/../')
);
之后就可以愉快的使用嵌套群组了,php artisan route:list 测试下,完全没问题。
命名空间类型
不过这里的默认namespace 是Laravel风格,也就是默认命名空间是App\Http\Controllers,所以之后的嵌套路由不需要写全,不过我个人在Lumen中喜欢使用完整的nampsace。
当然,这样是可以配置的。
从 vendor/fremail/lumen-nested-route-groups/config 文件夹复制NestedRouteGroups.php 到 lumen项目根目录的config文件夹。
打开NestedRouteGroups.php,设置namespace为'full'即可。
之后在boostrap/app.php中 $app->configure('NestedRouteGroups'); 应用配置即可。
然后我就可以这样写了:
$app->group(['namespace' => 'App\Http\Controllers\api\v1'], function () use ($app) {
//认证 $app->group(['prefix' => 'auth'], function () use ($app) {
....
});
//诗词 $app->group(['prefix' => 'posts'], function () use ($app) {
....
});
}
lumen 项目根目录_在Lumen路由中使用嵌套路由群组相关推荐
- lumen 项目根目录_利用rewrite修改网站根目录,适用于laravel、lumen
###背景 最近几天准备做个小项目,使用国内的某平台进行版本控制.项目演示.质量管理.由于使用的是laravel框架,项目入口在public目录下,演示平台又不提供修改网站根目录的功能权限.那么能不能 ...
- linux中的用户、群组和权限
linux中的用户.群组和权限 linux中的用户.群组和权限 新建用户natasha,uid为1000,gid为555,备注信息为"master" groupadd -g 55 ...
- lumen 项目根目录_Lumen 初体验(二)
最近使用 Lumen 做了 2 个业余项目,特此记录和分享一下. Lumen 的介绍 在使用一项新的技术时,了解其应用场景是首要的事情. Lumen 的口号:为速度而生的 Laravel 框架 Lum ...
- lumen 项目根目录_Lumen简单使用
路由定义 在 bootstrap/app.php 中,最后几行代码是: $app->group(['namespace' => 'App\Http\Controllers'], funct ...
- java中怎么把生成文件到项目根目录_[SpringBoot2.X] 02- 项目结构介绍
POM文件 继承 Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目. spring-boot-starter-parent 是一个特殊的 starter, 它用来提 ...
- sphinx 项目根目录_如何使用Sphinx工具记录Django项目
sphinx 项目根目录 I recently visited a company where I had a nice talk with one of its employees. We talk ...
- ionic4中点击跳转路由_在Ionic 4中使用角度路由
ionic4中点击跳转路由 The Router module is one of the most important in the Angular library. Paired with Ion ...
- vue-cli构建SPA项目结构介绍spa完成路由开发及嵌套路由
目录 一.vue-cli构建SPA项目结构介绍 二.spa完成路由开发 三. 嵌套路由 一.vue-cli构建SPA项目结构介绍 前提:搭建好NodeJS环境 node -v npm -v ...
- React中无限级嵌套路由的实现(RRD-V6)
React-router-dom v6 无限级嵌套路由的实现 话不多说直接上代码 以下代码为了节省空间,有简写 入口文件 index.js root.render(<BrowserRouter& ...
最新文章
- 基于Springboot实现宠物医院综合管理系统
- 简谈TCP的八个特性
- 入门程序之入门代码编写
- 写出记录型信号量中的wait操作代码_操作系统进程的同步与互斥及经典同步与互斥问题...
- C/C++线程与多线程工作笔记0005---c/c++中的wchar_t类型
- 项目管理(把与某点相邻边分为两类 是复杂度降为(n^(3/2))
- jQuery end()函数示例
- 华为Verilog入门教程
- python断言语句_Python断言处理
- adobe photoshop cs6 安装
- 游戏音效中竟然有3D音效,这是什么鬼?
- php怎样转换成html格式,php实现转换html格式为文本格式的方法
- 一个区块链美女小白的蜕变——我庆幸自己能生活在这个高速时代!
- 特斯拉“炸”降,蔚来、小鹏、理想们的路就平坦了么?
- zabbix lld使用trapper方式(zabbix_sender)
- vs2010安装失败(如下图)的解决方法
- 用html做完整网页效果
- 网页技巧-网页的版式设计---版式的基本类型
- Linux的基本命令+深入一点的网址分享
- MySQL密码修改不成功_Mysql 修改密码不成功(不生效)的解决办法
热门文章
- Word插入 分节符实现多个页码
- 西门子MES软件ebr脚本使用说明-SIMATIC IT EBR(Opcenter Execution Pharma
- 【4/13-15】第六章总结+课后题
- 【转】ubuntu下最好用的输入法fcitx-sunpinyin
- java实验3 判断二维坐标系中2个圆的位置关系
- 2020年电赛坡道小车
- 在win7上利用虚拟磁盘隐藏文件
- 还在用ImageNet预训练?你的网络可能对形状一无所知!谈神经网络的形状偏见
- android图库源码,android从系统图库中取图片的实例代码
- 江苏科技大学计算机程序,江苏科技大学计算机课程实践VC++