Статья является частью документации 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;
}