Разница между репозиториями и сервисами заключается в том, что я позволяю моим сервисам принимать массивы данных для обновления, создания и т. Д. IIRC. Настоящий репозиторий должен работать только с объектами домена. Например, вы можете также использовать свой сервисный уровень для генерации миниатюр для продуктов, изображений профилей, кэширования и т. Д. Дело в том, что сервисы не связаны строго с работой с сущностями Doctrine.
Я все еще использую пользовательские репозитории в качестве контейнера для всех своих пользовательских запросов, а что нет; которые потребляются в моих классах обслуживания и иногда непосредственно в моих контроллерах. Хотя я использую свои сервисы для сериализации (для ответов JSON).
Есть еще небольшая серая область с тем, что должно быть где, и вы просто должны это почувствовать. В конце концов: если вы оставите сервисный уровень и поместите эту логику в свои репозитории, это все равно будет не такой уж большой работой для обслуживания и масштабируемости, просто меньше определения ответственности класса.