2016-01-28 24 views
-3

我終於開始進入PHP的模型 - 視圖 - 控制器框架編碼(並且就像在旁邊,它比在線意大利麪好得多)。我正在使用CodeIgniter框架。我的問題涉及使用兩個不同的控制器來影響同一個模型的慣例。PHP MVC - 分離管理控制公約

我有一個本網站的目錄部分,一般來說,它是由,足夠適當的目錄控制器。但是,我還編寫了添加,編輯或刪除目錄中的條目的管理功能。一般來說,管理控制器正在處理管理功能。

所以我的問題是:如果我試圖讓管理員編輯目錄的能力,適當的或公認的慣例是將該功能添加到目錄控制器或管理控制器?有一個單獨的管理控制器甚至是明智的嗎?顯然這兩種方法都可行,甚至可能還沒有被接受的慣例,但我想檢查一下。

編輯:再次,dowvotes上完全合法的問題。請至少告訴我爲什麼我的完全合理的問題值得讚揚,但不是答案。

再次編輯:感謝StackOverflow的完全asinine自動禁止基於巨魔downvotes,這 - 再一次,非常合理 - 問題導致我的帳戶被禁止進一步的問題!猜猜我會藉此機會說:也許一個應該圍繞着Q和A建立的社區可以讓自己不會非常討厭這些問題?什麼也沒有。錯誤。與這個問題。但是一些社區納粹巡邏人員決定他們不喜歡它,並且繁榮,我不想問任何有關開發社區的問題。

回答

1

所以我的問題是:如果我想給管理員編輯 目錄的能力,將正確的或接受的傳統觀點是認爲 功能添加到目錄控制器,或到管理控制器? 建議使用單獨的管理控制器嗎?

管理員功能應始終在單獨的控制器中。切勿將管理工具與服務於公共網站的控制器混合使用。

在您的管理控制器的構造函數中 - 您將檢查以確保其已驗證的管理員 - 或者您將其彈出。換句話說,他們根本沒有進入控制器,然後你不必檢查所有方法中的有效管理員。

管理員視圖文件應始終與網站視圖文件分開,並且再次因爲您已檢查有效的登錄名,您不必檢查視圖文件。

您的管理目錄控制器可以從網站使用的同一模型中提取數據。從技術上講,你可以把管理方法放在那裏。但我強烈建議你讓他們分開。換句話說,您將擁有具有管理工具的模型,並且這些模型只能由管理員控制器訪問。

0

您應該調用處理編輯東西的功能的Catalog_model。這個模型比由需要模型的控制器調用。

+0

我知道。但是應該使用哪一個CONTROLLER,管理員或目錄?有沒有傳統的答案? – CGriffin

+0

目錄控制器應處理目錄的東西。但是,當使用CodeIgniter時,它並不重要。 – mazedlx

+0

因此,傳統上,我應該避免單獨的管理控制器? – CGriffin