Понимание хранилища, постоянства и отображения данных. Кто что делает?

В последнее время я пытаюсь понять шаблон репозитория и как отобразить данные из базы данных в модель домена. Я работаю с ZendFramework и пытаюсь реализовать этот шаблон здесь.

Во многих примерах и пояснениях вы видите примеры для сохранения сущности, подобной этой:

class UserRepository
{
function add(User $user) {
$this->db->save( $user );
}
}

Или получить объект, подобный этому

class UserRepository
{
function findById($id) {
return $this->db->fetchAll()->where('id = ' . $id);
}
}

Я предполагаю, что $ this-> db в репозитории, вероятно, представляет объект tablegateway, задачей которого является перенос данных в базу данных или их получение. Правильный?

И вот что я не понимаю:

Во-первых: почему tablegateway предоставляется объект для сохранения, когда ему действительно нужен массив для вставки в базу данных? Должен ли шлюз в действительности быть тем, кто получает данные от объекта и сохраняет их в базе данных, или это должно быть подготовлено в хранилище?

Во-вторых:
При извлечении объекта, почему возвращение tablegateway обратно к тому, кому нужны данные?
Где происходит сопоставление данных из базы данных (вероятно, в виде массива или объекта-строки) с моделью предметной области?

Это не имеет смысла для меня.

Может быть, $ this-> db вообще не представляет шлюз, и я просто все неправильно понимаю.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]