За последние 24 часа нас посетили 22549 программистов и 1066 роботов. Сейчас ищут 649 программистов ...

Data Mapper, Repository, Service Layer

Тема в разделе "PHP для новичков", создана пользователем php_dummy, 1 окт 2017.

  1. php_dummy

    php_dummy Новичок

    С нами с:
    17 авг 2017
    Сообщения:
    13
    Симпатии:
    0
    Добрый день! Интересует вопрос как правильно организовать доступ к статьям на сайте из базы данных. Как я понял, шаблон data mapper ничего не знает о структуре бд и представляет собой уровень доступа к базе данных, минуя sql запросы. Шаблон репозиторий позволяет инкапсулировать хранилище (то есть это может быть база данных, файловая система и т.д.) и уже манипулирует определенными сущностями. Например добавить статью, удалить статью (в общем, CRUD). Чтобы вернуть данные в формате нужного объекта в репозитории осуществляется цикл, который результаты пришедшие от data mapper преобразует в эти самые объекты. Но также нужно, чтобы в некоторых случаях эти статьи возвращались в формате xml. Собственно вопрос. На каком уровне это делать? В одних статьях говорится, что этим занимается data mapper, в других говорится, что репозиторий должен возвращать данные в едином формате, а остальные операции ложатся на service layer. Вариант первый - сделать на уровне data mapper, но этот уровень не должен знать о конкретных сущностях, вариант второй - сделать на уровне repository, но он должен возвращать данные в определенном формате. Вариант третий - сделать на уровне service layer, но тогда получается лишний прогон цикла. Первый - когда идет преобразования в нужные объекты в репозитории, второй - когда эти объекты преобразуются в xml. Вариант четвертый - я неправильно понял эти шаблоны. Как правильно это реализовать?