Насколько плохо echo внутри метода?
Следуя канонам PHP, любой метод должен возвращать значение. Так что ваш вариант "кривоват". Другое дело, если вы используете какой-то фреймворк, в котором так положено делать. Например в Yii 1.0 экшены контроллера именно так и выглядели. Во второй же версии Yii 2.0 это было исправлено на правильное поведение. Любой экшн возвращал какое-то значение.
лучше сделайте в контроллере return$layout;
А в месте где формируете ответ уже и выводите.