Тип

Материал из Eludia
Перейти к: навигация, поиск

Тип ( $_REQUEST {type}) -- это символическое имя, соответствующее экрану с заданным набором реквизитов.

Подробно

Функционирование любого WEB-приложения – это запросы и ответы, удовлетворяющие протоколу HTTP. Основная часть HTTP-запроса – адрес (URL). Попробуем окинуть мысленным взором эволюцию WEB-технологий с точки зрения структуры использовавшихся в них адресов. Нас будет интересовать часть адреса, следующая за именем сервера (хоста).

Первые WEB-приложения были статическими сайтами, так что URL был просто адресом файла в дереве директорий. С внедрением стандарта CGI, а позже – "активных страниц" ASP, PHP, JSP и им подобных клиент получил возможность задавать параметры просмотра каждого экрана. Фактически "активные страницы" представляют собой функции, вызываемые с определённым набором аргументов и возвращающие HTTP-ответ.

Поначалу отдельные функции были изолированы в отдельных файлах (CGI-сценариях, "активных страницах") – и их адерса фигурировали в URL. Однако при формировании ответа, специфического для каждой страницы, большинство операций, как правило, общими для всего WEB-приложения. Скажем, на содержательном рекламном сайте основные вычисления что на странице с новостью, что на карточке товара относятся к обсчёту общих навигационных элементов. Естественно, разработчики стали выносить подобные фрагменты кода в библиотеки подпрограмм, а на отдельных страницах оставлять только директивы для их вызова.

По мере того, как большая часть логики сосредотачивалась в библиотеках, а текстовое содержимое с последовательным распространением систем управления содержимым (content management systems, CMS) переезжало из файлов в БД, существование отдельных "активных страниц" всё более теряло смысл. Функции, вычисляющие HTTP-ответ по заданным параметрам, разместились в тех же библиотеках, что и все прочие, а их запуск для определённых URL стали указывать в настройках WEB-сервера. В частности, такой функциональностью обладают "сервлетные контейнеры" (попросту говоря, WEB-серверы, написанные на java) и Apache в комбинации, например, с mod_perl. При этом указанная функция (обработчик) может использовать URL просто как один из аргументов, наряду с параметрами запроса, HTTP-заголовками и прочими переменными контекста. Адрес, указанный в запросе, окончательно потерял связь со структурой файловой системы.

Для презентационных сайтов обработка URL может использоваться при создании средствами CMS вируальных директорий, адреса которых требуется публиковать вне Internet. Скажем, сайт торговца автомобилями может щеголять URL вида www.auto-dealer.biz/4x4, которые здорово смотрятся на футболках и пластиковых пакетах. Что же касается информационных систем с WEB-интерфейсом, здесь URL никакой рекламной нагрузки не несёт, так что никто не мешает считать, что все запросы на динамические страницы идут на корневую директорию и различаются только набором параметров. Именно такой подход применяется в Eludia.pm.

Пожалуй, здесь самое время завершить обзор и перейти к делу. Итак, позвольте представить важнейший элемент нашего API: глобальный хэш %_REQUEST. Автоматически устанавливается в начале обработки запроса и содержит множество переданных параметров – в Perl-версии так же, как и в PHP (там он, естественно, называется $_REQUEST, но мы по умолчанию используем Perl-синтаксис). %_REQUEST доступен не только на чтение, его компоненты могут изменяться по ходу формирования ответа. Ниже будет показано, что это стандартная практика, в частности, при первичной подготовке данных и определении перенаправляющего ответа. Выбирая имена парметров запроса и иных ключей %_REQUEST во избежание конфликтов желательно сверяться со справочником, особенно на первых порах.

При использовании унифицированных URL с симметричными параметрами разработчику необходим простой и очевидный признак, отличающий, скажем, экран "накладная" от экрана "список пользователей". Для этой цели в Eludia вместо имени файла используется параметр, имеющий фиксированное имя: type. Каждый динамический запрос к WEB-приложению на базе Eludia содержит параметр type. Пустое значение данного параметра заменяется на первое по порядку значение для главного меню текущего пользователя, а если текущий пользователь не определён – то на значение logon (перенаправление на форму авторизации).

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты