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

公司用的Yii框架,前后端分离,但是...

项目某个大模块接口的代码全部都写在一个Controller,比如小程序和APP的接口都在一个Controller,是基本所有的代码,包括原本应该写在Model里的代码,说实话,看到这种写法的实话我是很震惊的。

我也是个小菜鸡,但我想这种写法是一定有问题的,包括载入无用的类,内存开销,可读性下降等,不过是否还有其他的问题? 希望有大佬可以说说

阅读 4.8k
6 个回答

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

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

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

public function actionTest(){

var_dump(memory_get_usage());

}

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题