Я пытаюсь понять, как работает шаблон хранилища и как его можно реализовать в пользовательском шаблоне MVC.Настройка шаблона репозитория в MVC
Насколько я понимаю, репозиторий - это слой, который просто возвращает данные из класса сущности или сохраняет класс сущности на постоянный уровень.
Теперь я в настоящее время увидеть, как это:
запрос приходит в мой контроллер для создания пользователя. Просто имя пользователя и пароль. Мой контроллер будет делать что-то вроде этого:
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.
Но кроме этого, это правильный способ реализации шаблона репозитория?
Выглядит неплохо для меня.Репозиторий - это правильное место для sql. Можете взглянуть на руководство Doctrine2 ORM только для идей. – Cerad