Инструменты пользователя

Инструменты сайта


limb3_2007_4:ru:packages:web_app:controller

Ключевые понятия контроллера Limb3

Контроллер - широкое понятие, в целом, контроллер - отвечает за логику работы приложения.

В Limb3 контроллер употребляется в 2-х смыслах:

  • Front controller - часть приложения, которая отвечает за самую общую логику работы приложения: старт сессии, разбор запроса, проверка кеширования, запуск конкретного кода, отвечающий за бизнес-логику текущей страницы, рендеринг шаблона и т.д.
  • Page controller (мы его часть называем просто контроллер) - классы, которые реализуют конкретную бизнес-логику приложения, например, удаление новости, аутентификация пользователей, создание документа и т.д. Когда мы говорим контроллер - чаще всего имеем ввиду именно page controller.

Front controller или ядро приложения в приложениях, выполненных на базе WEB_APP, состоит из так называемой цепочки фильтров (Filter chain). см. Использование цепочки фильтров для организации Front-Controller.

С контроллером также следующие понятия:

  • Request - Запрос. Запрос содержит данные, которые пришли от клиента (пользователя) к системе. Для обычного сайта в Запросе хранятся POST и GET переменные, URI запроса, а также данные по отосланным файлам, если они есть.

Объект запроса можно получить в любой точке приложения при помощи тулкита:

 $request = lmbToolkit :: instance()->getRequest();
  • Response - Ответ. Ответ содержит данные, которые система отдает клиенту после полной обработки Запроса. Для обычного сайта в Ответе хранятся заголовки, текст ответа, куки и т.д.

Объект ответа можно получить в любой точке приложения при помощи тулкита:

 $response = lmbToolkit :: instance()->getResponse();
  • Разбор Запроса (Request Dispatching). Обязательный этап в работе почти любого приложения; используется для того, чтобы проанализировать Запрос (Request) и решить, что именно система должна сделать. Результатом работы системы является объект класса lmbController , который хранится в тулките в виде $dispatched_controller (текущий контроллер). Текущий контроллер обычно имеет так называемое текущее дествие (current action).

Текущий контроллер можно получить из тулкита:

  $dispatched_controller = lmbToolkit :: instance()->getDispatchedController();
  • (Контроллер (PageController)) - PageController - это группа действий, относящихся к какой-то предметной или функциональной области. Например, есть контроллер администрирования новостей AdminNewsController, в этот контроллер входят действия по отображения списка новостей, созданию новости, редактированию новости, удалению новости. Можно сказать, что контроллер страницы - это объект над которым, в рамках приложения, выполняются какие-то действия. Можно условно рассматривать контроллер как модуль системы.
  • Action - Действие. Функциональная единица приложения. Можно рассматривать действие как отдельную страницу или лучше как тип страницы. Действие обязательно принадлежит какому-либо контроллеру. Например, есть действие create контроллера AdminNewsController для создания новости. Простое отображение, например, списка новостей - есть действие display контроллера AdminNewsController. Действия чаще всего реализуются как методы классов контроллеров. В реализации действия обычно определяется, какие изменения над данными нужно произвести, какой шаблон должен будет отображен и т.д.

Контроллер в общем можно расширять как вширь (делать более богатые функционально приложения), так и вглубь (делать более сложную логику работы приложения). То есть можно увеличивать количество контроллеров страниц, а можно регистрировать новые фильтры. Можно усложнить логику работы приложений и за счет выполнения более сложных действий.

См. также:

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  _   __   ___   __  __  _   __  _   __
 | | / /  / _ \ / / / / | | / / | | / /
 | |/ /  / // // /_/ /  | |/ /  | |/ / 
 |___/  /____/ \____/   |___/   |___/
 
limb3_2007_4/ru/packages/web_app/controller.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)