Статический маршрут
Статический маршрут - это правило нахождения контроллера по его расположению в иерархии папок. Статическим он назван, потому что изменить адрес контроллера можно только, изменив положение его файла. Статические контроллеры находятся в папке ./handlers/static/. Каждый контроллер находится в своей отдельной папке. Правила маршрутизации следующее:
- Адресом контроллера назовем путь от папки ./handlers/static/ до папки контроллера. Например, адресом контроллера ./handler/static/my/blog/ будет - my/blog.
Однако, существует два вида специальных папок:
default - располагается только в ./handlers/static/
index - может располагаться в любой папке внутри ./handlers/static/ за исключением другой папки index
У контроллеров, находящихся в таких папках, при составлении адреса имена этих папок опускаются. Например: адрес ./handler/static/my/index/ будет my (НЕ my/index), адресом ./handler/static/default/index/ является пустая строка (такой контроллер может использоваться в качестве обработки главной страницы). - Параметрами контроллера назовем часть пути, которую контроллер использует для уточнения ресурса. Например, контроллер ./handler/static/my/blog/ может принимать параметры вида "id/[0-9]+" для обозначения номера ресурса, тогда URL ресурса будет вида: http://example.com/my/blog/id/99/, что может означать - "показать запись номер 99 из моего блога", при этом "id/99" - будет параметром.
- Контроллер соответствует запросу, если его адрес и тип параметров совпадает с запросом. Если контроллер не требует никаких параметров, то запрос должен совпадать с адресом.
- Поиск контроллера осуществляется в порядке от более длинного адреса к менее длинному, т.е. сначала будет проверяться контроллер ./handler/static/my/blog/ а уж в конце ./handler/static/default/index/
Если задан путь вида: http://www.example.com/about/me/, то он будет обрабатываться в следующей последовательности:
- Проверяем существует ли контроллер: ./handlers/static/about/me/index/ и что он не требует дополнительных параметров. Если условие соблюдается, возвращаем контроллер маршрутизатору.
- Проверяем существует ли контроллер: ./handlers/static/about/me/ и что он не требует дополнительных
параметров. Если условие соблюдается, возвращаем контроллер
маршрутизатору.
- Далее проверяем наличие контроллера ./handlers/static/about/index/ и что "me" подходит в качестве параметра. Возвращаем контроллер, если таковой найден.
- Проверяем ./handlers/static/about/ и "me" в качестве параметра. Возвращаем контроллер, если таковой найден.
- Проверяем ./handlers/static/default/about/ и "me" в качестве параметра. Возвращаем контроллер, если найден.
- Проверяем ./handlers/static/default/index/ и "about/me" в качестве параметра. Возвращаем контроллер, если найден.
- Сигнализируем об отсутствии соответствующего контроллера.
Статический маршрут - это первый тип маршрутов, который проверяется маршрутизатором. Для его функционирования не нужна база данных, т.к. он основывается на файловой системе. Так как адрес контроллера статичен, такой контроллер выполняет функцию, которая нужна на сайте в одном экземпляре. Например - главная страница сайта. В Ирокезе статические контроллеры в основном выполняют системные функции, и страницы, которые они обрабатывают, не предназначены для непосредственного просмотра обычным пользоватем. Примеры таких контроллеров:
- Страницы административной панели
- Страница авторзации
- АПИ Аякс запросов
- Скрипт уменьшения изображений
- Вывод CAPTCHA