CI这样的MVC框架如何对业务逻辑进行组件化开发?

写多了业务逻辑发现在加载页面的时候有些业务性的代码片段是经常重复的,然后就把这些代码片段封装成了私有方法,但是有的时候一个controller可能需要访问另一个controller的私有方法,我的解决方案把一些私有方法放到了父类上。

但是这样父类就包含了过多的方法,我想改成api的方式,让前端去ajax请求,这样就减少了父类的方法,但是这些小方法粒度过小,每一个都在前端做一次请求觉得好浪费。一个能用的方案是针对页面写聚合的入口,在这个入口里调用那些细粒度的方法,但觉得不够优雅。

大家有什么好的改进方法吗?

  • 3月1日提问
  • 评论
  • 邀请回答
  • 编辑

CI里面不是有helper,你可以写自己的helper。
然后用这个语句$this->load->helperfile;给加载不就ok了。

  • 3月1日回答
  • 3 评论
  • 编辑

可以考虑自己增加一个service层,跟model层一样,调用比较方便

  • 3月1日回答
  • 评论
  • 编辑

  1. 增加service层,扩展load方法,可以自己写个load->service 的方法(当然也可以把它当做model用),然后把复用的业务写在service层。

  2. 再弄一套service系统(ci),不同的系统公用的部分写在service层,通过restful或者rpc方式调用

  • 3月1日回答
  • 评论
  • 编辑

更倾向于写一个 helper 专门处理公用的逻辑

  • 3月1日回答
  • 评论
  • 编辑

发表评论

电子邮件地址不会被公开。 必填项已用*标注