Частичный перевод CGI::Application / Essential Application Methods .
Это только одна из четырех частей перевода. Остальные будут опубликованы позднее.
Как всегда — все примеры кода — авторские.
P.S. Если кто-нибудь подскажет, как корректно перевести на русский «Essential Application Methods» — буду очень признательна.
Поскольку, я — поклонница Template Toolkit, и не вижу особого смысла использовать иные системы шаблонов, если TT доступен, в данном документе опущено описание методов load_tmpl() и tmpl_path().
param()
|
1 2 |
$self->param('step', 'on_get_result'); # устанавливаем значение параметру my $step = $self->param('step'); # получаем значение параметра |
Метод param() может использоваться для получения значений параметров, или для установки нужных значений определенным параметрам. Если установить значения параметров из метода setup — эти значения станут доступны из любой части кода приложения, так же, как и самые обычные значения параметров.
Если вызвать param() в контексте списка, метод вернет полный список всех существующих в данный момент параметров.
|
1 |
my @params = $self->param(); |
Не стоит путать этот метод с методом param() модуля CGI.
query()
|
1 2 |
my $q = $self->query(); my $day = $q->param('day'); |
Метод query() возвращает ссылку на объект query модуля CGI.pm . Сам объект создается при вызове метода new() CGI::Application.
Используется метод query(), как и обычно, для доступа к данным, которые передает клиент.
run_modes()
|
1 2 3 4 5 |
$self->run_modes( on_get_result => \&on_get_result, # указываем ссылку на метод on_start => 'on_start', # указываем имя метода AUTOLOAD => sub { return 'Запрошенной страницы не существует' } ); |
Метод определяет таблицу соответствия возможных режимов (статусов) работы приложения и подпрограмм, которые выполняются, при запуске приложения в определенном режиме.
run_modes() можно вызывать неограниченное число раз. Указанные режимы и подпрограммы будут добавлены к уже существующему списку. Если одному и тому же режиму назначаются в соответствие поочередно 2 и более разных подпрограмм — в итоге будет вызываться последний назначенный вариант.
Подготовленная методом run_modes() таблица используется методом run() для запуска требуемых функций и передачи им параметров запроса.
От назначенных методом run_modes() подпрограмм ожидается, что они вернут текстовый блок информации (например, готовый код html-страницы), который без дополнительных преобразований будет отправлен клиенту.
start_mode()
|
1 |
$self->start_mode('on_start'); |
Метод start_mode() назначает режим (один из определенных в списке run_modes() ), который будет вызываться по-умолчанию, когда клиент не указал нужный режим в списке передаваемых параметров.
Если режим не назначен с помощью start_mode(), CGI::Application в подобных случаях будет по-умолчанию вызывать режим «start».