Статья является частью документации Mojolicious
АТРИБУТЫ
Mojolicious наследует все атрибуты из Mojo и реализует следующие новые.
controller_class
my $class = $mojo->controller_class; $mojo = $mojo->controller_class('Mojolicious::Controller');
Класс который будет использоваться в качестве контроллера, по умолчанию используется Mojolicious::Controller.
mode
my $mode = $mojo->mode; $mojo = $mojo->mode('production');
Режим работы для вашего приложения.
По умолчанию используется значение переменной окружения MOJO_MODE
или development
.
Mojo назовёт лог-файл по текущему режиму; если режим отличается от development
, логи будут ограничены.
Если вы хотите добавить в ваше приложение логику, зависящую от режима,
можете добавить подпрограмму $mode_mode
.
sub development_mode { my $self = shift; } sub production_mode { my $self = shift; }
plugins
my $plugins = $mojo->plugins; $mojo = $mojo->plugins(Mojolicious::Plugins->new);
Загрузчик плагина по умолчанию — объект Mojolicious::Plugins. Обычно вы можете оставить всё как есть, см. Mojolicious::Plugin, если хотите написать плагин.
renderer
my $renderer = $mojo->renderer; $mojo = $mojo->renderer(MojoX::Renderer->new);
Используется для визуализации контента, по умолчанию MojoX::Render. Два основных плагина визуализации Mojolicious::Plugin::EpRenderer и Mojolicious::Plugin::EplRenderer содержат более подробную информацию.
routes
my $routes = $mojo->routes; $mojo = $mojo->routes(MojoX::Dispatcher::Routes->new);
Диспетчер маршрутов, по умолчанию MojoX::Dispatcher::Routes. Вы используете его в стартовом методе для определения конечных точек url (анг. url endpoints) для вашего приложения.
sub startup { my $self = shift; my $r = $self->routes; $r->route('/:controller/:action')->to('test#welcome'); }
secret
my $secret = $mojo->secret; $mojo = $mojo->secret('passw0rd');
Секретный пароль, используемый для подписанных cookies и т.п., по умолчанию — название приложения, что не очень надежно, поэтому вы должны изменить его!!! До тех пор, пока вы будете использовать значение по умолчанию, в лог файл будут писаться отладочные сообщения с напоминанием о смене пароля.
static
my $static = $mojo->static; $mojo = $mojo->static(MojoX::Dispatcher::Static->new);
Для обслуживания статических ресурсов из каталога public
, по
умолчанию MojoX::Dispatcher::Static.
types
my $types = $mojo->types; $mojo = $mojo->types(MojoX::Types->new);
Отвечает за отслеживание типов контента, который вы хотите обслуживать в приложении, по умолчанию MojoX::Types. Вы можете легко зарегистрировать новый тип.
$mojo->types->type(vti => 'help/vampire');
МЕТОДЫ
Mojolicious наследует все методы от Mojo и реализует следующие новые.
new
my $mojo = Mojolicious->new;
Создаёт новое приложение Mojolicious. Автоматически определяет ваш домашний каталог и устанавливает логирование, основываясь на вашем текущем режиме работы. Кроме того, устанавливается маршрутизация, статическая диспетчеризация и стандартный набор плагинов.
defaults
my $defaults = $mojo->default; my $foo = $mojo->defaults('foo'); $mojo = $mojo->defaults({foo => 'bar'}); $mojo = $mojo->defaults(foo => 'bar');
Значения по умолчанию для stash. Обратите внимание, что этот метод ЭКСПЕРИМЕНТАЛЬНЫЙ и может быть изменен без предупреждения!
$mojo->defaults->{foo} = 'bar'; my $foo = $mojo->defaults->{foo}; delete $mojo->defaults->{foo};
dispatch
$mojo->dispatch($c);
Сердце каждого приложения Mojolicious, вызывает диспетчеры статических файлов и маршрутов для каждого запроса.
finish
$mojo->finish($c);
Чистка после обработки запроса, как правило, вызывается автоматически.
handler
$tx = $mojo->handler($tx);
Устанавливает контроллер по умолчанию и вызывает процесс для каждого запроса.
plugin
$mojo->plugin('something'); $mojo->plugin('something', foo => 23); $mojo->plugin('something', {foo => 23});
Загрузка плагина.
process
$mojo->process($c);
Данный метод может быть перегружен, чтобы сделать логику,
зависящую от запроса, по умолчанию просто вызывает dispatch
.
Вообще-то, вместо него вы будете использовать плагин или контроллер,
рассматривая его кувалду в вашем набор инструментов.
sub process { my ($self, $c) = @_; $self->dispatch($c); }
start
Mojolicious->start; Mojolicious->start('daemon');
Запускает интерфейс командной строки Mojolicious::Commands для вашего приложения
startup
$mojo->startup;
Это ваш основной хук в приложении, он будет вызываться при запуске.
sub startup { my $self = shift; }