2010-05-27 79 views
2

說我的申請有一個「帖子」的模式,而且功能之一是add_post(),它可能是這樣的:笨最佳實踐示範功能

function add_post($data) { 

    $this->db->insert('posts',$data); 

} 

其中$的數據是一個數組:

$data = array ('datetime'=>'2010-10-10 01:11:11', 'title'=>'test','body'=>'testing'); 

這是最佳實踐嗎?這意味着如果您使用該功能,則需要知道數據庫字段的名稱,因爲我對OOP的理解是,您不需要知道該方法的工作原理等。

回答

5

對於初學者來說,它看起來很好。基本思想是該模型只對應用程序和數據存儲(即您的數據庫)之間的數據的CRUD(創建,檢索,更新&刪除)感興趣。

如果您想從模型本身進一步抽象數據庫字段,允許它自動創建基於字段的方法等,您可以嘗試使用ORM(對象關係映射)框架。爲CodeIgniter設計的非常簡單的一個是IgnitedRecord

+1

絕對沒問題。 OOP不要求你「不知道這些方法是如何工作的」,它需要你劃分數據關係並定義它們的交互。另一方面,MVC要求你分開數據,邏輯和顯示代碼。您仍然這樣做:您的模型需要測試標題,您的控制器需要它並且您的視圖需要它。然而,你的觀點並不需要知道標題是如何存儲的,而你上面顯示的內容並不會規避這一點;所以我會同意BoltClock(總結!)。 – Kurucu 2010-06-01 20:44:28