Настройка шаблона репозитория в 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 внутри метода создания репозитория. Но я все еще пытаюсь понять, как на самом деле выглядит DAO и насколько он отличается от «Модели» с точки зрения модели в шаблоне MVC.

Но кроме этого, является ли это правильным способом реализации шаблона репозитория ??

10
задан Gordon 12 February 2012 в 01:01
поделиться