菜鸟一枚,想学习一下新框架
项目需要为mvc模式 ,生命周期为 客户请求 -》 路由 -》 中间件 -》 拦截器 -》 接收数据 -》 验证器 -》 业务逻辑 -》 最后 return ,现在就卡在了路由,还是太菜了,哈哈哈哈
目前 composer 接入 webmanadmin 后台 ,如果项目需要前后端分离 则后台出接口
app
|-api #客户端接口
|-home #pc展示或者 h5入口
|-admin_api #如果后端分离则出接口
|-common #公共
|- model
|- common.php #公共方法
|- api_route.php #未实现当前路由
|- admin_route.php #未实现当前路由
..
config
...
解决方案如下
app
|-api
|-controller #这是第一种路由模式
|-IndexController.php
|-middleware #中间件
|-validate # composer think-validate 习惯用tp的验证类
|-model #模型
|-v1 #这是第二种路由模式
|-controller #这是另一种
|-Test.php
|-middleware
|-validate
|-model
|-v2 #更多
|-admin_api
|-common
|-home
comfig
|-route.php
...
如图
Route::group('/api', function () {
Route::any('/index',[app\api\controller\IndexController::class, 'index']);
# any 可以换成 resource 等
# /index 你可以换成其他名字也行 如 get_list http://域名/api/get_list
# app\api\controller\IndexController::class 对应的路径控制器
# 如果你的控制器是Index.php 则变成 app\api\controller\Index::class
# 'index' 控制器对应的方法
Route::group('/v1', function () {
#这个 v1下的控制器改名为 Test.php
Route::any('/demo',[app\api\v1\controller\Test::class, 'test']);
# '/demo' 可以随便起名字,但是重复会报错
Route::any('/test/del/{id}',[app\api\v1\controller\Test::class, 'del']);
# 这种更符合我的模块写法
});
});
Route::any('/index',[app\api\controller\IndexController::class,'index']);
Route::any('/demo',[app\api\v1\controller\Test::class,'test']);
Route::any('/test/del/{id}',[app\api\v1\controller\Test::class, 'del']);
一定要看文档,一定要看文档,一定要看文档。
为什么我的域名后面没有:8787
搜索 nginx 代理 自行更改
里面的插件是真的香,直接composer就能用