Что хорошего в шаблоне репозитория, когда у вас есть ORM?
Пример. Предположим, у меня есть следующие (вымышленные) таблицы:
Таблица: пользователи
pk_user_id
fk_userrole_id
username
Таблица: роли пользователей
fk_userrole_id
role
Теперь с помощью orm я могу просто поместить это в файл модели:
$user = ORM::load('users', $id);
Теперь $user уже является моим объектом, который можно было бы легко загрузить лениво:
(было бы еще лучше, если бы вещи автоматически складывались в единственное/множественное число)
foreach ( $user->userroles()->role as $role )
{
echo $role;
}
Теперь с шаблоном репозитория мне пришлось создать репозиторий для пользователей и один для ролей. Репозиторию также нужны всевозможные функции для извлечения данных для меня и их хранения. Кроме того, он должен работать с моделями Entity.Так что я должен создать все это тоже.
Для меня это выглядит так, как будто многие вещи делают... Когда я мог просто получить данные, как я описал выше, с помощью ORM. И я мог бы так же просто сохранить его:
ORM::store($user);
В этом случае в базу данных будет сохраняться не только пользовательский объект, но и любые изменения, внесенные мной в объект «Роли». Так что никакой дополнительной работы, как с шаблоном репозитория, не требуется...
Итак, мой вопрос в основном таков: зачем мне использовать шаблон репозитория с ORM? Я видел руководства по использованию этого шаблона (например, с Doctrine). Но на самом деле это просто не имеет для меня никакого смысла... Любое объяснение его использования в сочетании с ORM..??