Почему нехорошо? Что конкретно "нехорошего" в создании хелпера, реализующего определенный сервис и предоставляющего этот сервис различным частям приложения?
Делать жирный хелпер и захламлять его не связанными друг с другом функциями - это действительно нехорошо. Но никто же и не принуждает иметь единственный хелпер на все приложение.
куда вы предпочитаете выносить "тяжелую" логику в приложении? Чтобы не делать жирных контроллеров
В хелперы. Они
именно для этого и предназначены
> не захламлять модели?
Модель - самое неудачное слово, которое существует в мире веб-разработки.
Хелпер является полноправной частью модели. А то что ты называешь моделью - слой работы с БД - это либо DBAL, либо ORM, дата маппер.
Чтобы не захламлять маппер, тебе нужен
репозиторий. Тот же хелпер, но работающий с БД, коллекция специфичных SQL запросов.