Как спроектировать контроллер для приложения Ajax (Extjs) -PHP? - PullRequest
0 голосов
/ 22 апреля 2011

Приложение разрабатывается с использованием ExtJs, (Json), PHP и MySQL. Более половины логики / модели будет на стороне сервера. Хотя значительная часть логики лежит на ExtJs Frontend. В основном это одностраничное приложение, поэтому традиционный интерфейсный контроллер / маршрутизация MVC здесь не работает. Я все еще хотел бы разработать php-контроллер, который управляет взаимодействием с сервером. Как лучше это сделать?

1 Ответ

2 голосов
/ 22 апреля 2011

Я хотел бы предложить думать о сервере с точки зрения «веб-службы».По сути, ваш интерфейсный код ExtJS был бы приложением, а ваш «веб-сервис» предоставлял бы только способы извлечения и хранения данных.

По сути это было бы что-то вроде этого:

  • Основанный на ExtJS "уровень пользовательского интерфейса"
  • Основанный на JavaScript "уровень контроллера" работает со слоем пользовательского интерфейса
  • Основанный на PHP "сервисный уровень"
  • Уровень пользовательского интерфейса взаимодействуетсо слоем контроллера, который затем взаимодействует со слоем службы

Уровень службы по существу будет таким же, как в любом типичном веб-приложении PHP: он будет содержать проверку данных, фильтрацию ввода, запросы к базе данных, всеобычные вещи.Основным отличием будет то, что вместо использования PHP для генерации HTML, который затем будет отправлен в браузер, сервисный уровень будет только сериализовать результаты в JSON.

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

Уровень пользовательского интерфейса будет просто действовать как шаблонизатор или ваш HTML-код.Он будет отображать данные, назначенные ему со слоя контроллера, и будет вызывать функции на уровне контроллера для обработки таких событий, как нажатие кнопок.

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