2013-07-26 45 views
0

我想讓我的模型無知的SQL代碼和連接,所以我試圖實現一個所謂的「數據訪問對象」/「道」。模型和數據訪問對象,應該通過,應該通過什麼

我的模型代表數據庫中的表,和它的屬性數據庫字段這樣例如loginModel

class LoginModel { 

    private $user; 
    private $pass; 
    private $salt; 
    private $ip; 
    private $agent; 

    // getters and setters e.g. 
    public function getUser() { 
     return $this->user; 
    } 
    public function setUser($user) { 
     $this->user = $user; 
    } 
    // or for example magic methods -> just for example 

    public function __get($key) { 
     return $this->$key; 
    } 

    public function __set($key, $value) { 
     $this->$key = $value; 
    } 

} 

在我的發展,我認爲我做了錯誤的事情,在我看來,或我的控制器,我這樣做:

$loginModel = new LoginModel(); 
$loginModel->setUser('$_POST["user"]'); 
$loginDAO = new LoginDAO($loginModel); 
echo $loginDAO->getResults(); 

是正確的方法來做到這一點?或者我應該先閱讀DAO中的變量POST,然後設置模型的屬性?

回答

0

如果您想進一步將其抽象爲涉及多種類型存儲的不同場景,您可能需要查看Factory Pattern

編輯:看了你的問題再次,意識到你沒有需要一半的答案,但這裏是我刪除:


你設計模型的方式可以使事情有點混亂。嘗試將模型設計爲對象而不是流程。

登錄的過程將由控制器處理,而模型將負責從數據庫中獲取事物。這意味着你在控制器內部使用你的模型來完成任務。