Хорошая ли идея объединить JS Framework Ajax/UI (ext,jquery-ui) с PHP-фреймворком MVC (zend, symfony)?

StackOverflow https://stackoverflow.com/questions/1800775

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

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


обновленная ссылка, спасибо «Исключение e».

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

  

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top