NAME

Mojolicious::Plugins - Plugins

SYNOPSIS

use Mojolicious::Plugins;

DESCRIPTION

Mojolicious::Plugins is the plugin manager of Mojolicious. In your application you will usually use it to load plugins. To implement your own plugins see Mojolicious::Plugin and the add_hook method below.

ATTRIBUTES

Mojolicious::Plugins implements the following attributes.

hooks

my $hooks = $plugins->hooks;
$plugins  = $plugins->hooks({foo => [sub {...}]});

Hash reference containing all hooks that have been registered by loaded plugins.

namespaces

my $namespaces = $plugins->namespaces;
$plugins       = $plugins->namespaces(['Mojolicious::Plugin']);

Namespaces to load plugins from. You can add more namespaces to load application specific plugins.

METHODS

Mojolicious::Plugins inherits all methods from Mojo::Base and implements the following new ones.

add_hook

$plugins = $plugins->add_hook(event => sub {...});

Hook into an event. You can also add custom events by calling run_hook and run_hook_reverse from your application.

load_plugin

my $plugin = $plugins->load_plugin('some_thing');
my $plugin = $plugins->load_plugin('SomeThing');
my $plugin = $plugins->load_plugin('MyApp::Plugin::SomeThing');

Load a plugin from the configured namespaces or by full module name.

register_plugin

$plugins->register_plugin('some_thing', $app);
$plugins->register_plugin('some_thing', $app, foo => 23);
$plugins->register_plugin('some_thing', $app, {foo => 23});
$plugins->register_plugin('SomeThing', $app);
$plugins->register_plugin('SomeThing', $app, foo => 23);
$plugins->register_plugin('SomeThing', $app, {foo => 23});
$plugins->register_plugin('MyApp::Plugin::SomeThing', $app);
$plugins->register_plugin('MyApp::Plugin::SomeThing', $app, foo => 23);
$plugins->register_plugin('MyApp::Plugin::SomeThing', $app, {foo => 23});

Load a plugin from the configured namespaces or by full module name and run register. Optional arguments are passed to register.

run_hook

$plugins = $plugins->run_hook('foo');
$plugins = $plugins->run_hook(foo => 123);

Runs a hook.

run_hook_reverse

$plugins = $plugins->run_hook_reverse('foo');
$plugins = $plugins->run_hook_reverse(foo => 123);

Runs a hook in reverse order.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.