Привет, друзья!
Я в zend2 пока новичок и конечно же сразу решил делать всё по уму и подключил Doctrine2. Так вот теперь мне непонятно, куда выносить логику? Раньше использовал CakePHP и там всё понятно.
Если с простыми моделями всё понятно, логику можно хранить прямо там, то как быть если используешь Doctrine2? Я имею ввиду концепцию тонких контроллеров и толстых моделей.
Пример:
Регистрация юзера. Имеем контроллер UserController c registerAction. Уже есть и сама форма и entity User с геттерами и сеттерами. По хорошему в контроллере надо вызывать метод типа createUser(), а сам этом метод где-то в модели прописать. Потом и unit-тесты удобнее писать тестируя только сами методы в модели. Но мне сказали, что пихать это дело в Entity плохая практика. Так и куда-же тогда это прописать? Интересует именно best practice. Заранее спасибо за помощь!
@cawakharkov@fornit1917 т.е. получается у нас есть сущность, контроллер, репозиторий и сервис. Из экшена вызываем метод в сервисе который вызывает метод репозитория?
@webtop почти так, только в репозитории следует выносить только методы типа findBySomeField, getListByCreated, findOneByFieldAndSortByAnotherTable, которые не зависят от менеджера. Остальное остается на уровне сервиса.