Scroll to navigation

Mojolicious::Plugins(3pm) User Contributed Perl Documentation Mojolicious::Plugins(3pm)

NAME

Mojolicious::Plugins - Plugin manager

SYNOPSIS

  use Mojolicious::Plugins;
  my $plugins = Mojolicious::Plugins->new;
  push @{$plugins->namespaces}, 'MyApp::Plugin';

DESCRIPTION

Mojolicious::Plugins is the plugin manager of Mojolicious.

PLUGINS

The following plugins are included in the Mojolicious distribution as examples.

Perl-ish configuration files.
General purpose helper collection, loaded automatically.
Renderer for plain embedded Perl templates, loaded automatically.
Renderer for more sophisticated embedded Perl templates, loaded automatically.
Route condition for all kinds of headers, loaded automatically.
JSON configuration files.
Mount whole Mojolicious applications.
YAML configuration files.
Template specific helper collection, loaded automatically.

EVENTS

Mojolicious::Plugins inherits all events from Mojo::EventEmitter.

ATTRIBUTES

Mojolicious::Plugins implements the following attributes.

namespaces

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

Namespaces to load plugins from, defaults to Mojolicious::Plugin.

  # Add another namespace to load plugins from
  push @{$plugins->namespaces}, 'MyApp::Plugin';

METHODS

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

emit_chain

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

Emit events as chained hooks.

emit_hook

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

Emit events as hooks.

emit_hook_reverse

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

Emit events as hooks in reverse order.

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', Mojolicious->new);
  $plugins->register_plugin('some_thing', Mojolicious->new, foo => 23);
  $plugins->register_plugin('some_thing', Mojolicious->new, {foo => 23});
  $plugins->register_plugin('SomeThing', Mojolicious->new);
  $plugins->register_plugin('SomeThing', Mojolicious->new, foo => 23);
  $plugins->register_plugin('SomeThing', Mojolicious->new, {foo => 23});
  $plugins->register_plugin('MyApp::Plugin::SomeThing', Mojolicious->new);
  $plugins->register_plugin(
    'MyApp::Plugin::SomeThing', Mojolicious->new, foo => 23);
  $plugins->register_plugin(
    'MyApp::Plugin::SomeThing', Mojolicious->new, {foo => 23});

Load a plugin from the configured namespaces or by full module name and run "register", optional arguments are passed through.

SEE ALSO

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.

2022-12-22 perl v5.36.0