Является ли хорошей идеей объединить Ajax / UI JS Framework (ext, jquery-ui) с MVC PHP Framework (Zend, Symfony)? - PullRequest
2 голосов
/ 26 ноября 2009

Я понимаю, что это очень общий вопрос, но, думаю, я не ищу окончательного ответа. Будучи новичком в PHP-фреймворках, мне трудно разобраться с этим.

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

Обычно это делается для приложений, основанных на AJAX? Есть ли принятый / распространенный способ сделать это?

Ответы [ 5 ]

4 голосов
/ 26 ноября 2009

Это следующий логический шаг от MVC, на мой взгляд. Вы уже отделяете свой доступ к данным (модель), от бизнес-логики (контроллер), от вывода (представление) - теперь вы просто отделяете поведение от разметки.

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

3 голосов
/ 26 ноября 2009

Быстрый пример того, как он может совмещаться для приложения Zend Framework (и это из демонстрационного приложения, которое я написал несколько месяцев назад):

  • Используйте MCV Framework для создания полнофункционального сайта (который работает без JavaScript).
  • Измените контроллер, чтобы понять разницу между «обычным» запросом и запросом AJAX (переключение контекста Zend делает это простым).
  • Добавьте Javascript (в моем примере jQuery) для чистой замены ссылок событиями AJAX.

В конце концов, PHP-приложение знает, что на запрос AJAX требуется ответ AJAX (меньшая пропускная способность, меньше обработки, только фрагмент JSON или HTML), но для обычного запроса требуется сгенерированная целая страница.

По сути, вы просто используете AJAX для запроса (или обновления, или добавления данных) в шаблон 'view', без необходимости обрабатывать весь макет. Zend Framework Помощник по переключению контекста может помочь в этом.

Стоит отметить, что переключение контекста хорошо работает при создании запроса в различных форматах - HTML / XML, CSV и т. Д.

2 голосов
/ 26 ноября 2009

Это очень хорошая идея, поскольку PHP MVC-фреймворки связаны с JS-фреймворками :


обновлена ​​ссылка, спасибо "Exception e".

1 голос
/ 26 ноября 2009

Просто кажется странным использовать дополнительную инфраструктуру MVC на сервере.

Не нужно беспокоиться об этом. При разработке вы можете использовать Zend Framework и Extjs, например, независимо друг от друга. Это действительно отдельные продукты. Зависимости между этими слоями должны быть простыми . Не нужно беспокоиться.

Связь низкая, вам нужно только настроить средства для запроса данных из вашего серверного приложения и делать все, что вы хотите, на стороне клиента. Граница между этими системами проста и не смущает вас.
Extjs на самом деле не имеет структуру mvc imho. Он предлагает предопределенные богатые компоненты. Вы склеиваете эти компоненты с некоторой конфигурацией и настраиваете URL вашего сервера, с которого можно получать данные.

Как вы получаете свой Zend MVC ответить на AJAX? Я рекомендую вам посмотреть презентацию о zf ↔ ajax от руководителя проекта zf.

1 голос
/ 26 ноября 2009

Лично мы используем Zend (MVC, а также другие аспекты инфраструктуры Zend) с jquery, и он очень хорошо работает вместе. Поскольку не все ваше взаимодействие со страницей html будет осуществляться через jquery (ajax), настоятельно рекомендуется стандартная архитектура MVC. Вы, безусловно, хотите, чтобы слои вашей архитектуры (разделяющие модель и представление) и наличие jquery (по крайней мере для меня) и дополнительная «возможность» выполнять MVC асинхронно.

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