====== Общая организация пакета 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|Контроллера]].| |filter/|Наиболее часто используемые [[limb3:ru:packages:filter_chain:architecture|фильтры]], из которых создается ядро Limb3-based приложения. Front-controller в приложениях, созданных на базе Limb3, обычно реализуется в виде цепочки фильтров.| |request/|Содержит классы для разбора запроса и определения, что именно должно выполнить Limb3-приложение. | |request/|Классы для [[request_dispatching|разбора запроса]], то есть получение необходимых параметров из строки запроса и определения, что конкретно должно сделать приложение о ответ на действие пользователя. В настоящее время содержит в частности [[lmb_routes|класс lmbRoutes]], который позволяет устроить [[request_dispatching|разбор запроса (request dispatching)]], аналогичный используемому в Rails.| |template/|Классы, расширяющие [[limb3:ru:packages:macro|шаблонную систему MACRO]]. В основном это [[limb3:ru:packages:macro:tags|теги]] и [[limb3:ru:packages:macro:filters|фильтры]], применяемые в Limb3-based приложениях.| |toolkit/|Содержит инструментарий пакета в виде [[lmb_web_app_tools|класса lmbWebAppTools]]. см. также [[limb3:ru:packages:toolkit|описание пакета TOOLKIT]].| |util/|Различные утилитарные классы, например, [[lmb_message_box|lmbMessageBox]], который используется для отображения сообщений пользователям.|