鍍金池/ 問答/PHP/ PHP開發(fā)接口,把所有接口放在一個(gè)類(Controller)有什么問題?

PHP開發(fā)接口,把所有接口放在一個(gè)類(Controller)有什么問題?

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

項(xiàng)目某個(gè)大模塊接口的代碼全部都寫在一個(gè)Controller,比如小程序和APP的接口都在一個(gè)Controller,是基本所有的代碼,包括原本應(yīng)該寫在Model里的代碼,說實(shí)話,看到這種寫法的實(shí)話我是很震驚的。

我也是個(gè)小菜雞,但我想這種寫法是一定有問題的,包括載入無用的類,內(nèi)存開銷,可讀性下降等,不過是否還有其他的問題? 希望有大佬可以說說

回答
編輯回答
還吻

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

2017年4月17日 00:46
編輯回答
墨小羽

可以說之前那個(gè)人寫的有問題,該分模塊的時(shí)候是要分模塊的,控制器該分的時(shí)候也要分.

2017年11月27日 19:58
編輯回答
我甘愿

在一個(gè)9000行左右的Controller里和50行左右的Controller執(zhí)行相同的一個(gè)方法:

public function actionTest(){

var_dump(memory_get_usage());

}

一個(gè)返回6253168,一個(gè)返回3465856,單位是B,這樣是不是證明確實(shí)有額外的內(nèi)存開銷?
那么是否還有其他的性能或者可維護(hù)性上的問題呢?

2018年4月16日 18:19
編輯回答
深記你

最大的問題就是破壞性,一單某個(gè)函數(shù)的值沒定義或者有任何錯(cuò)誤,整個(gè)Controller就拋出錯(cuò)誤了,所有相關(guān)的功能全部癱瘓。好的方式是通過Route跟Controller來控制不同的邏輯。通過中間件兒來控制權(quán)限,把分工跟責(zé)任細(xì)化到個(gè)個(gè)不同的Controller。最好能達(dá)到單一邏輯通過單一Controller來實(shí)現(xiàn)。這樣維護(hù),迭代的時(shí)候都比較容易。

2017年7月28日 10:27
編輯回答
初心

最大問題是維護(hù)困難啊,本來可以通過文件目錄先到對應(yīng)程序代碼修改的,現(xiàn)在要在這個(gè)超級長的文件里先到目標(biāo)代碼,這是個(gè)很痛苦的事情哎!
另外多人協(xié)同開發(fā)的時(shí)候版本庫很容易發(fā)生沖突哎,動不動就要處理沖突也很痛苦啊。

2017年10月28日 12:28
編輯回答
厭惡我

耦合度太高了吧?一點(diǎn)拙見~現(xiàn)在開發(fā)不是都要解耦么?

2018年1月8日 22:11