Yii MVC + веб-сервис = не MVC? - PullRequest
0 голосов
/ 15 сентября 2011

Я приступаю к созданию проекта Yii, который в основном имеет общую модель данных (скажем CerealStuff) с интерфейсным веб-сайтом (назовем его site), сайтом администратора admin и веб-сервисом ws. Я новичок во всем, что касается MVC, и я хотел знать, как мне разработать этот проект, чтобы он соответствовал лучшим практикам Yii / MVC. До сих пор я выделил два основных варианта:

  1. Создание моделей CerealStuff в корне, создание трех модулей site, admin и ws каждый со своими собственными контроллерами;
  2. Создание моделей CerealStuff в корне, создание двух модулей admin и public с public, содержащими контроллеры, которые обрабатывают сайт, и имеют объявления @soap для обработки ws.

Я знаю, что вариант 2 уменьшает общее количество воспроизводимого кода, но он не совсем чистый, если честно. Также мне кажется, что современное веб-приложение должно быть таким, чтобы даже «сайт» (представление) использовал веб-сервис для доступа к базе данных.

Скажи мне, что думать!

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Я представляю простой веб-сервис в своем приложении и ушел с отдельным (мыльным) контроллером.

Если вы следуете парадигме толстая модель / тощий контроллер , довольно просто привязать интерфейс веб-службы к своим моделям.

Редактировать: лучший пример жирных моделей: http://www.therailsway.com/2007/6/1/railsconf-recap-skinny-controllers

0 голосов
/ 15 сентября 2011

Прочитайте эту статью , чтобы увидеть пример структурированного проекта Yii MVC с двумя точками входа для front-end и back-end.Узнав об этом, вы можете легко добавить еще одну точку входа для ws.

. Как видите, все модели распределяются между модулями.Контроллеры, файлы конфигурации и представления являются отдельными.Представления могут быть настроены как общие.Я использовал этот тип структуры во многих проектах, и у меня никогда не возникало проблем с расширением или масштабированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...