隨着CMS(PHP/MySQL)越來越大,代碼越來越難以維護,我正在考慮應用MVC模型以使其更易維護,透明。我一直在做這方面的工作,我認爲除了意見部分之外,我已經弄清楚了。下面是我的想法至今:MVC模型中應用於CMS時的V部分
index => controllers <=> models controllers => views
充當主控制器(路由器),並創建基於網址參數控制器類的實例的index.php文件。控制器類與模型類交談以更新和從數據庫檢索信息。之後,控制器確保顯示視圖(以模板的形式)並接收處理後的數據以進行顯示。然而...
這個想法是將視圖中的所有邏輯轉移到控制器,對吧?或者至少遠離視圖 - 防止胖/瘦的控制器/模型討論。但無論我以何種方式來看,我仍然需要一些動態視圖,這也需要一些邏輯。例如,根據某些用戶的用戶級別和權限(更新,更新/刪除等)顯示某些選項。所以這將歸結爲if/else語句和類似的東西。這個可以嗎?如果是這樣,這個「簡單」邏輯有多少是「允許的」?我認爲不同的模板開始變得更有意義(例如profile_view
和profile_edit
)。
另一個簡單的例子。假設一個用戶可以看到10個配置文件字段中的5個,而另一個用戶10/10。我應該通過控制器檢索所有10個字段的所有信息,並在視圖中確定是否顯示它?或者將這些決策移至控制器,並檢索5或10個字段的信息,並根據已傳遞的信息僅顯示視圖中的可用字段?因爲在許多情況下,擁有所有數據並忽略其中的一部分會容易得多,反而不知道有什麼可用的並且必須一直檢查。