limb3_2007_2:ru:packages:web_app:controller
Ключевые понятия контроллера Limb3
См. также : Схема работы контроллера.
Контроллер отвечает за логику работы приложения.
С контроллером связаны следующие понятия:
- Request - Запрос. Запрос содержит данные, которые пришли от клиента (пользователя) к системе. Для обычного сайта в Запросе хранятся POST и GET переменные, URI запроса, а также данные по отосланным файлам, если они есть.
- Response - Ответ. Ответ содержит данные, которые система отдает клиенту после полной обработки Запроса. Для обычного сайта в Ответе хранятся заголовки, текст ответа, куки и т.д.
- lmbService - Сервис. Это группа действий, относящихся к какой-то предметной или функциональной области. Например, есть сервис администрирования новостей AdminNews, в этот сервис входят действия по отображения списка новостей, созданию новости, редактированию новости, удалению новости. Можно сказать, что сервис - это объект над которым, в рамках приложения, выполняются какие-то действия. Можно рассматривать lmbService как модуль системы.
- Action - Действие. Функциональная единица приложения. Можно рассматривать действие как отдельную страницу или лучше как тип страницы. Действие обязательно принадлежит какому-либо сервису. Например, есть действие create сервиса AdminNews для создания новости. Простое отображение, например, списка новостей - есть действие display сервиса AdminNews. То есть, Action - это действие, которое применяется к объекту (сервису).
- RequestDispatching - Разбор Запроса. Обязательный этап в работе почти любого приложения; используется для того, чтобы проанализировать Запрос (Request) и решить, что именно система должна сделать. Результатом работы системы является объект класса lmbDispatchedRequest (Разобранный Запрос), который содержит Сервис и Действие.
- lmbCommand - Команды. Реализуют действия. Команды выполняют всю специфическую для приложения работу. Например, команда AdminDisplayNewslistCommand отрендерит шаблон news/admin_display.html, что позволит вывести список новостей центра администрирования, а CreateNewsCommand соберет данные из Запроса и укажет классам модели добавить новую новость в базу данных. Именно от работы команд зависит, какой шаблон будет отображен, какие изменения произойдут с данными и когда. В большинстве случаев, на каждое действие (Action) приходится по одной команде.
Controller можно расширять как вширь (делать более богатые функционально приложения), так и вглубь (делать более сложную логику работы приложения). То есть можно увеличивать количество сервисов, а можно регистрировать новые фильтры. Можно усложнить логику работы приложений и за счет выполнения более сложных команд.
limb3_2007_2/ru/packages/web_app/controller.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1

Обсуждение