Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 3.52 KB

File metadata and controls

55 lines (38 loc) · 3.52 KB

Роутинг

Модули

Модуль - достаточно широкое понятие и в разных контекстах, разных проектах означает разное. Что такое модуль для Colibri ?

С тем же успехом эту сущность можно было бы назвать "bundle" или "package". Всегда приложение можно разделить на некоторые практически независимые составляющие. Например, если вы вы пишите блог, то такое приложение можно разбить как минимум на 3 составляющие: пользователи, блоги и посты. И очень удобно когда весь код, относящийся к одной составляющей находится в одном месте (в одной подпапке). Именно такая составляющая является для Colibri модулем.

Все модули находятся в папке application/modules - каждый в отдельной папке. Чтобы создать модуль, просто создайте папку внутри application/modules и начните создавать в ней контроллеры, шаблоны, яваскрипты, ...
Более подробно о том, что располагается в папке модуля можно прочитать в разделе Структура каталогов

Разделы

Часто ваше приложение имеет несколько разделов. Самый распространённый случай - это публичный раздел и так называемая "админка". Или, например, в вашем приложении есть личный кабинет пользователя или отдельные инструменты (разделы) для менеджеров, для модераторов, для бизнес аналитиков.

Чтобы указать какие именно в вашем приложении есть разделы откройте файл настроек divisions.php и добавьте в него путь по которому будет открываться раздел.

Например, если вы хотите чтобы "админка" вашего приложения открвалась по http://example.ru/admin, просто добавьте admin в массив, возвращаемый из divisions.php.

Отличия

Для всех url-ов, начинающихся с /admin, Colibri будет использовать:

  • layout.admin.php - в качестве layout
  • /application/modules/<module_name>/admin - в качестве базовой папки для расположения контроллеров, шаблонов, js/css кода и ресурсов (картинок).

Роутинг

В общем виде маршрутизация запросов вызлядит так:

http://example.com/ [<division>/] [<module>[/<method>[/<methodParameter1Value>[/<methodParamerer2Value>]]]]

Раздел сайта (division) может не быть указан и использоваться по умолчанию.