Rakovskiy, Если ты собрался делать REST API, то оно у тебя должно быть доступно по урле с каким-нибудь специальным префиксом. Например http://megasocialengine.com/api/v1/
Есть ещё куча рекомендаций по организации урлов, версионированию, это наиболее распространённое решение.
Трогать существующие контроллёры тебе вообще не нужно. В случае с Yii, предполагаю, что тебе нужно запилить новые, специально для API. Если ты читал про CommandBus, то скорее всего уже догадался, что в контроллёре достаточно отправить команду на обработку шиной и вернуть полученный ответ в нужном формате. Хотя на мой взгляд пилить отдельные контроллёры плохая мысль, если логика будет один в один. В таком случае имеет смысл завести какую-нибудь мидлу или обработчик события, которое происходит при получении ответа из контроллёра и дальше уже определять, в каком формате отдавать.
Я не знаю Yii, может там уже есть решение для этой проблемы, может быть есть какое-то стороннее. В Symfony это делается очень просто. Вот например: http://vermillion.readthedocs. ... .html
В League/Route пошли дальше и запилили целые стратегии: http://route.thephpleague.com/ ... gies/
Я, вдохновившись этим концептом решил во второй версии Vermillion запилить нечто подобное.
В Laravel кстати, если мне не изменяет память, уже запилили подобную фичу.