Использование платформы YII (php) для мобильного веб-приложения и веб-приложения - PullRequest
3 голосов
/ 10 марта 2012

В настоящее время я работаю над клиентским предложением, которое предназначено для веб-приложений и мобильных веб-приложений.Для веб-приложения имеется 61 функция, и мобильное веб-приложение должно иметь подмножество всех функций.

Мы оценили различные стеки языков программирования и решили, что LAMP - лучший для этого.Мы даже пошли дальше и оценили различные фреймворки MVC на PHP и доработали YII.

Теперь моя проблема заключается в следующем.Мы собираемся использовать одну и ту же кодовую базу для мобильных устройств и веб-приложений.Мы запланировали направить все запросы через целевой контроллер «Front-Controller», который проверяет заголовок «User-Agent» и имеет все контроллеры приложений в блоке коммутатора.Таким образом, как для веб-приложения, так и для мобильного приложения код «Модель» и «Контроллер» остается неизменным, изменяется только «Вид».В зависимости от «user-agent» целевой контроллер решает загрузить соответствующий «View».Как эта архитектура звучит для вас всех?У кого-нибудь есть идея получше?Возможна ли эта архитектура функционально в YII?Пожалуйста, ведите меня примерно так же.

Ответы [ 2 ]

3 голосов
/ 01 апреля 2012

Мы запланировали направить все запросы через целевой контроллер «Front-Controller», который проверяет заголовок «User-Agent» и в котором все контроллеры приложений находятся в блоке коммутатора

.чтобы сделать это, рассмотрите возможность использования фильтра вместо этого: http://www.yiiframework.com/doc/guide/1.1/en/basics.controller#filter

Они намного мощнее и могут устранять такие вещи, как блоки переключателей, в то же время позволяя вам полностью контролировать загрузку темы и т. д.

3 голосов
/ 10 марта 2012

Похоже, хорошее и общее решение.Вот сообщение в блоге о том, как переключать темы в зависимости от типа браузера:

http://learnyii.blogspot.com/2011/03/yii-theme-iphone-android-blackberry.html

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