Rakovskiy, Когда будем любоваться?
Rakovskiy, Когда будем любоваться?
# ayzek (01.04.2015 / 23:06)Не скоро
Rakovskiy, Когда будем любоваться?
Rakovskiy, Какую логику и почему?
Вот посмотри сюда например: https://github.com/Kilte/leich ... ource
Вся логика пишется один раз, далее под неё пишутся интерфейсы, будь то REST API, JSON-RPC или просто контроллёры, возвращающие отрендеренные шаблоны.
Почитай ещё вот эту статейку: http://php-and-symfony.matthia ... uses/
Думаю все вопросы отпадут.
reaper, Вот у меня "просто контроллёры, возвращающие отрендеренные шаблоны", а что бы вернуть мне потом к примеру json данные то нужно переписывать все контроллеры, убирать рендер шаблонов и возвращать json
# Rakovskiy (01.04.2015 / 23:23)В твоём случае (с Yii) нужно вынести бизнес логику в сервисный слой, что бы контроллеры получились максимально "тонкими".
reaper, Вот у меня "просто контроллёры, возвращающие отрендеренные шаблоны", а что бы вернуть мне потом к примеру json данные то нужно переписывать все контроллеры, убирать рендер шаблонов и возвраща
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 кстати, если мне не изменяет память, уже запилили подобную фичу.
Ну вот как реализованы рест контроллеры в Yii https://github.com/yiisoft/yii ... rs.md
# L!MP (01.04.2015 / 23:40)Бизнес логика в моделях. Ок...
В твоём случае (с Yii) нужно вынести бизнес логику в сервисный слой, что бы контроллеры получились максимально "тонкими".
Ну а потом просто плодить их под каждую задачу, т.е UserController - это "п
# reaper (01.04.2015 / 23:43)Вот так я сразу и думал, но придется вести двойную игру работу с моделями т.к. у них вся логика. Мне просто не нравится то, что придется два раза с базой работать
В случае с Yii, предполагаю, что тебе нужно запилить новые, специально для API.