Несколько месяцев разрабатывал на laravel5 и понял, что весьма накосячил с репозиториями, а точнее КПД получил примерно 0. Сейчас пытаюсь понять, как все это дело исправить и узнать мнения разных спецов.
Когда я лазил по интернету, то находил различные приложения, где примерно так-же косячат как и я. Вот пример такого приложения:
https://github.com/Bottelet/Flarepoint-crm/
Репозиторий:
https://github.com/Bottelet/Flarepoint-crm/blob/de...
Собственно какие тут проблемы:
- логика в репозитории
- дубль запроса в методе update (мы передаем $id, из модели, чтобы получить модель). У себя в приложении я накосячил еще более жестче, так как передавал еще и модель, чтобы избавиться от этого запроса.
- нарушение единой ответственности (bcrypt)
- возврат модели в качестве результата из репозитория.
Тоесть, если использовать репозитории, как действительно репозитрои и подменить скажем запрос модели на запрос с помощью квери билдера и в один прекрасный день из репозитория вернется не модель, а коллекция, то это не гарантирует никакой стабильной работы приложения.
От сюда вопрос, зачем тут репозитории, если это абстрактное хранилище над моделями, а не абстрактное хранилище в целом?
Ну и основной вопрос, в правильном ли я направлении формирую мысли, и как подобный подход с репозиториями можно реализовать правильно ?