Я пытаюсь выяснить, как работает шаблон Repository и как его можно реализовать в пользовательском шаблоне MVC.
Насколько я понимаю, Repository - это слой, который просто возвращает данные изкласс сущностей или сохраняет класс сущностей в постоянном слое.
Теперь я вижу это так:
В мой контроллер поступает запрос на создание пользователя.Просто имя пользователя и пароль.Мой контроллер будет делать что-то вроде этого:
function CreateAction ( )
{
$userRepo = new userRepository ( );
$user = new userEntity ( );
$user->setUsername('user');
$user->setPassword('123456');
$userRepo->create($user);
}
Тогда мой userRepository класс будет выглядеть так:
class userRepository
{
public function create ( User $user )
{
$this->db->exec ( "INSERT INTO ... QUERY TO SAVE THE USER" );
}
}
И мой userEntity классвыглядит следующим образом:
class userEntity
{
private $username;
private $password;
public function setUsername ( $username )
{
$this->username = $username;
}
public function getUsername ( )
{
return $this->username;
}
public function setPassword ( $password )
{
$this->password = $password;
}
public function getPassword ( )
{
return $this->password;
}
}
Теперь первое, что я считаю неправильным, это то, что я использую запрос внутри класса репозитория.Где я могу сохранить класс userEntity в базе данных?Другими словами, где я могу выполнять реальные запросы SQL?Я думаю, что правильным способом было бы вызвать DAO внутри метода 'create' хранилища.Но я все еще пытаюсь выяснить, как на самом деле выглядит DAO и насколько он отличается от «Модели» с точки зрения Модели в шаблоне MVC.
Но кроме этого, является ли это правильнымспособ реализации шаблона хранилища ??