====== Общая организация пакета WEB_APP. Наиболее значимые компоненты ====== ===== Описание ===== WEB_APP позволяет стоить веб-приложения, применяя паттерн MVC (Model-View-Controller). Сам WEB_APP пакет предоставляет классы для реализации только Controller составляющей. Выбор средства для реализации модели и отображения все равно лежит на конечном разработчике приложения, хотя WEB_APP реализован таким образом чтобы максимально упростить работу с приложениями, где в качестве модели будут выбраны "родные" Limb3 пакеты DBAL и ACTIVE_RECORD, а в качестве отображения - пакет VIEW. **Ядро** Limb3-приложения строится обычно на основе **цепочки фильтров**, которая запускается из файла index.php. Цепочка фильтров стоится из набора типовых фильтров пакета WEB_APP, которые можно найти в папке /limb/web_app/src/filter или из тех, которые сочтет нужными реализовать конечный разработчик приложения. ===== Структура папок пакета WEB_APP ===== ^Папка^Описание^ |controller/|Реализация [[Controller|Контроллера]].| |fetcher/|Классы для получения данных, так называемые [[lmbFetcher|Fetchers]]. Обычно при помощи них инкапсулируются запросы к любым источникам данных. Fecher-ы используются в основном в рамках Pull-view совместно с WACT-шаблонами.| |filter/|Наиболее часто используемые [[filters|фильтры]], из которых создается ядро Limb3-based приложения. Front-controller в приложениях, созданных на базе Limb3, обычно реализуется в виде цепочки фильтров.| |request/|Содержит классы для разбора запроса и определения, что именно должно выполнить Limb3-приложение. | |request/|Классы для [[request_dispatching|разбора запроса]], то есть получение необходимых параметров из строки запроса и определения, что конкретно должно сделать приложение о ответ на действие пользователя. В настоящее время содержит в частности [[lmbRoutes|класс lmbRoutes]], который позволяет устроить [[request_dispatching|разбор запроса (request dispatching)]], аналогичный используемому в Rails.| |template/|Классы, расширяющие [[limb3_2007_4:ru:packages:wact|шаблонную систему WACT]]. В основном это [[limb3_2007_4:ru:packages:wact:tags|теги]] и [[limb3_2007_4:ru:packages:wact:filters|фильтры]], применяемые в Limb3-based приложениях.| |toolkit/|Содержит инструментарий пакета в виде [[lmbWebAppTools|класса lmbWebAppTools]]. см. также [[limb3_2007_4:ru:packages:toolkit|описание пакета TOOLKIT]].| |util/|Различные утилитарные классы, например, [[lmbMessageBox|lmbMessageBox]], который используется для отображения сообщений пользователям.|