來源:互聯網
上載者:User
關鍵字
php
laravel
yii
mysql
thinkphp
我的理解是每一個功能模組劃分出一個控制器,這樣的話,方便以後需求出現變動的時候,修改起來能儘可能的不影響其他模組
但是也看到有人說把所有輸出視圖的方法都單獨抽出來寫到IndexController控制器裡面,而IndexController控制器裡面再去調用其他控制器的方法。想想好像他們說的也有道理。
但是感覺如果後期需求有變動,那麼IndexController控制器也要進行修改,好像又違反了高內聚低耦合的原則。(應該是同一個功能下輸出視圖和資料處理應該是內聚在同一個控制器下)
搞的我現在不知道到底該怎麼劃分控制器了,有沒有人能分享一下自己的劃分方式以及規範。
回複內容:
我的理解是每一個功能模組劃分出一個控制器,這樣的話,方便以後需求出現變動的時候,修改起來能儘可能的不影響其他模組
但是也看到有人說把所有輸出視圖的方法都單獨抽出來寫到IndexController控制器裡面,而IndexController控制器裡面再去調用其他控制器的方法。想想好像他們說的也有道理。
但是感覺如果後期需求有變動,那麼IndexController控制器也要進行修改,好像又違反了高內聚低耦合的原則。(應該是同一個功能下輸出視圖和資料處理應該是內聚在同一個控制器下)
搞的我現在不知道到底該怎麼劃分控制器了,有沒有人能分享一下自己的劃分方式以及規範。
目前我們使用thinkphp是兩種方式放在一起使用的
.
|-- Login
| `-- Action
| |-- IndexAction.class.php
| `-- LoginAction.class.php
|-- Query
| `-- Action
| |-- AgentChargeLogAction.class.php
| |-- AgentFundsLogAction.class.php
| |-- IndexAction.class.php
| |-- MobileTelAction.class.php
| |-- OrderQueryAction.class.php
| |-- ProductAction.class.php
| `-- UserAction.class.php
|-- Trade
| `-- Action
| |-- CardlibAction.class.php
| |-- FlowAction.class.php
| |-- IndexAction.class.php
| |-- QcoinsAction.class.php
| `-- TelAction.class.php
我們每個功能模組劃分出一個目錄。
把所有輸出視圖的方法都單獨抽出來寫到IndexAction(3.1版本)控制器裡面,而IndexAction控制器裡面再去調用其他控制器的方法。
建議一個功能模組一個控制器或者一個檔案夾。這樣維護修改都方便