2013-07-26 3 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(); 

Является ли это правильным способом? Или мне следует сначала прочитать процесс с переменными POST в DAO, а затем установить свойства модели?

ответ

0

Если вы хотите более детально описать это в разных сценариях, связанных с несколькими типами хранилищ, вы можете проверить Factory Pattern.

редактировать: снова посмотрел на свой вопрос, понял, которого не нужно половину этого ответа, но вот что я извлекал:


Как вы создавать свои модели можно было бы сделать вещи немного запутанным. Попробуйте сконструировать свои модели как объекты вместо процессов.

Процесс регистрации будет обрабатываться контроллером, тогда как модель будет нести ответственность за получение вещей из базы данных. Это означало бы, что вы используете свои модели внутри контроллеров в качестве способа выполнения задачи.

Смежные вопросы