为了账号安全,请及时绑定邮箱和手机立即绑定

PHP开发接口,把所有接口放在一个类(Controller)有什么问题?

PHP开发接口,把所有接口放在一个类(Controller)有什么问题?

PHP
守着星空守着你 2019-03-06 01:15:11
公司用的Yii框架,前后端分离,但是... 项目某个大模块接口的代码全部都写在一个Controller,比如小程序和APP的接口都在一个Controller,是基本所有的代码,包括原本应该写在Model里的代码,说实话,看到这种写法的实话我是很震惊的。 我也是个小菜鸡,但我想这种写法是一定有问题的,包括载入无用的类,内存开销,可读性下降等,不过是否还有其他的问题? 希望有大佬可以说说
查看完整描述

6 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

最大的问题就是破坏性,一单某个函数的值没定义或者有任何错误,整个Controller就抛出错误了,所有相关的功能全部瘫痪。好的方式是通过Route跟Controller来控制不同的逻辑。通过中间件儿来控制权限,把分工跟责任细化到个个不同的Controller。最好能达到单一逻辑通过单一Controller来实现。这样维护,迭代的时候都比较容易。

查看完整回答
反对 回复 2019-03-18
?
哔哔one

TA贡献1854条经验 获得超8个赞

先去了解一下什么是MVC思想

查看完整回答
反对 回复 2019-03-18
?
慕容森

TA贡献1853条经验 获得超18个赞

在一个9000行左右的Controller里和50行左右的Controller执行相同的一个方法:

public function actionTest(){

var_dump(memory_get_usage());

}

一个返回6253168,一个返回3465856,单位是B,这样是不是证明确实有额外的内存开销?
那么是否还有其他的性能或者可维护性上的问题呢?

查看完整回答
反对 回复 2019-03-18
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

最大问题是维护困难啊,本来可以通过文件目录先到对应程序代码修改的,现在要在这个超级长的文件里先到目标代码,这是个很痛苦的事情哎!
另外多人协同开发的时候版本库很容易发生冲突哎,动不动就要处理冲突也很痛苦啊。

查看完整回答
反对 回复 2019-03-18
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

耦合度太高了吧?一点拙见~现在开发不是都要解耦么?

查看完整回答
反对 回复 2019-03-18
?
青春有我

TA贡献1784条经验 获得超8个赞

可以说之前那个人写的有问题,该分模块的时候是要分模块的,控制器该分的时候也要分.

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 509 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信