SOLID, PSR эт всё понятно. Не совсем понятна зона ответственности контроллеров, вьюшек, моделей, сервисов. Раньше был MVC c ActiveRecord, было всё просто. Модель поделили на модель, фабрику, репозиторий это тоже всё понятно. А вот такие мелочи например: кто должен генерировать url - вью, контроллер, сервис или даже может ActiveRecord не понятно.