laravel 怎么规划多应用喃?
laravel 怎么规划多应用喃? 比如现在业务 有
APP端需要提供api
后端管理模块也需要提供api
开放服务对外提供接口支持也需要提供api
等等等。。。。后面可能需要增加更多的业务模块
这些应该怎么架构和规划业务喃?
是不是不能像TP那样本来就提供多应用?那么laravel应该怎么处理比较优雅喃?
高认可度评论:
引入服务的概念,把业务和服务区分开。例如上面提到的三个地方的api都需要用到查询,如果单纯的只是区分分块的话,那就成了下面这样:
好,三个同样的代码,我可以直接封装成一个方法并且优化后再调用:
一般这样的封装可以满足大部分的需求,就算是后续修改也只需要修改这个
common/user/userController
下的函数。但是再深入一些,符合单一、无状态原则,可以把查询用户封装成服务,控制器在业务层调用不同的服务。例如我需要查询用户的信息和房间信息。
这样做的好处就是,后续有修改,可以只修改一个地方,或者需求变更,有某个地方需要特定的方法来进行查询,那就从interface开始重新写一个方法,这样的好处就是解耦,以前的需求也不受影响!
当然,还有另外一种写法,把业务代码放入
service
中,service
中调用不同的数据仓库来获取相应的数据。例如还是上述的例子,我可以在service
中定义一个对外提供的方法,然后在这个方法中调用UserRepository
和RoomRepository
。开始开发的时候会感觉很多余,但是后续就很舒服了。
laravel-modules扩展包
引入服务的概念,把业务和服务区分开。例如上面提到的三个地方的api都需要用到查询,如果单纯的只是区分分块的话,那就成了下面这样:
好,三个同样的代码,我可以直接封装成一个方法并且优化后再调用:
一般这样的封装可以满足大部分的需求,就算是后续修改也只需要修改这个
common/user/userController
下的函数。但是再深入一些,符合单一、无状态原则,可以把查询用户封装成服务,控制器在业务层调用不同的服务。例如我需要查询用户的信息和房间信息。
这样做的好处就是,后续有修改,可以只修改一个地方,或者需求变更,有某个地方需要特定的方法来进行查询,那就从interface开始重新写一个方法,这样的好处就是解耦,以前的需求也不受影响!
当然,还有另外一种写法,把业务代码放入
service
中,service
中调用不同的数据仓库来获取相应的数据。例如还是上述的例子,我可以在service
中定义一个对外提供的方法,然后在这个方法中调用UserRepository
和RoomRepository
。开始开发的时候会感觉很多余,但是后续就很舒服了。
N套代码,根据业务独立部署,全部写在一起,找起来和维护起来不费力吗?
1、app 目录下新建 Admin (后端) Api(app接口)如
app/Api
目录下的结构跟默认的app/Http
目录保持一致。2、新建路由
routes/admin.php
routes/api.php
。3、注册路由
App\Providers\RouteServiceProvider::boot()
方法中注册,如下:常规的就app分组,每个api一个大组。
太大了还是拆分为多个系统好,有些api简单,单独一个系统更好维护
可以自荐一下我们的模块规划么 :blush:
我也是刚从tp转过来,也有这样的疑惑,难道得APP一个项目,后台管理系统一个项目,还有其他的。。。感觉这样好分散啊,楼主有没有好的建议?
这好像没啥问题啊,,,最多也就登录不一样吧,这个配置一下简单的很,,,
gitee.com/fresns/plugin-manager/ 你试试?可以按照多应用的玩法去玩。可以自行开发插件。
玩法如下:
开发见图:
使用效果见图:
建议你早点按照项目分开,别用那种丑陋的文件和module区分