2010-04-20 46 views
3

我只是對模型的經驗法則感到好奇。通常,我只在需要爲對象添加/編輯或更新數據庫條目的情況下使用它們。一般規則 - 何時使用模型(Codeigniter)

但是,我正在構建一個應用程序,該應用程序擁有一個「配置」表,該表包含各種數據,例如上次更新,這將控制何時應顯示應用程序中的某些功能。在這種情況下,我將主要需要從配置表中檢索數據。值得把這些配置方法放在模型中嗎?

我很想知道更多有經驗的編程人員如何接近CI中的MVC方法 - 例如僞方法(例如,與在模型和控制器中使用的相同對象相關的方法)將是最有幫助的。

回答

7

「是否值得在模型中使用這些配置方法?」

是的,絕對的,如果僅僅是爲了防止你編寫相同的getters和setter在每一個處理你的配置設置表的控制器。編寫一次你的getters和setter(理想情況下,在MY_Model中以一種普遍的方式),然後在模型中編寫一次複雜的查詢,然後根據需要在多個庫,控制器或視圖中調用它們。

通過使用模型,您可以編碼到接口而不是實現。

含義是從您的控制器中抽象模型的好處,因爲您的控制器可以不知道您的數據存儲方式。只要模型方法始終以控制器所期望的格式提供結果,就可以決定將數據從數據庫切換到xml到ini文件。總之,當你切換你的數據源時,你只需要更新你的模型的內部方法,而不是你的控制器。

最後,MVC的規則允許我允許視圖直接從模型請求數據。爲此,您可以構建CodeIgniter助手,以便在使用模型檢索配置設置的視圖中使用,這與本機config_item()常用函數的工作方式大致相同。

1

由於許多原因,您將HTML從V & C中分離出來,原因與將CSS與HTML分離開來,易於重用和更輕,更易讀的代碼相同。

還要注意,與其他MVC平臺,你不會有選擇。僅僅因爲你可以忽略方法(在CI)並不意味着你應該這樣做。