Mojolicious::Plugins - プラグインマネージャー
使い方
use Mojolicious::Plugins; my $plugins = Mojolicious::Plugins->new; push @{$plugins->namespaces}, 'MyApp::Plugin';
説明
Mojolicious::Pluginsは、Mojoliciousのプラグインマネージャです。
属性
Mojolicious::Pluginsは、以下の属性を実装しています。
namespaces
my $namespaces = $plugins->namespaces; $plugins = $plugins->namespaces(['Mojolicious::Plugin']);
プラグインをロードするときに見る名前空間。 特定のアプリケーションプラグインをロードするために、名前空間を追加することができます。
push @{$plugins->namespaces}, 'MyApp::Plugins';
プラグイン
以下のプラグインがMojoliciousのディストリビューションにはサンプルとして含まれています。
Mojolicious::Plugin::Config
Perlで書ける設定ファイル。
Mojolicious::Plugin::DefaultHelpers
Mojolicious::Plugin::DefaultHelpers
自動的にロードされる一般的な目的のヘルパーの集合です。
Mojolicious::Plugin::EPLRenderer
Mojolicious::Plugin::EPLRenderer
自動的に読み込まれる、単純な埋め込みPerlのテンプレートのためのレンダラーです。
Mojolicious::Plugin::EPRenderer
Mojolicious::Plugin::EPRenderer
自動的にロードされるより賢い埋め込みPerlのテンプレートのためのレンダラーです。
Mojolicious::Plugin::HeaderCondition
Mojolicious::Plugin::HeaderCondition
自動的にロードされるあらゆる種類のヘッダーのためのルート条件です。
Mojolicious::Plugin::JSONConfig
Mojolicious::Plugin::JSONConfig
JSON設定ファイル。
Mojolicious::Plugin::Mount
Mojoliciousアプリケーション全体をマウントします。
Mojolicious::Plugin::TagHelpers
Mojolicious::Plugin::TagHelpers
自動的に読み込まれる、テンプレートの特別なヘルパーの集合です。
イベント
Mojolicious::PluginsはMojo::EventEmitterからすべてのイベントを継承しています。
ATTRIBUTES
Mojolicious::Plugins implements the following attributes.
namespaces
my $namespaces = $plugins->namespaces; $plugins = $plugins->namespaces(['Mojolicious::Plugin']);
プラグインをロードする名前空間。デフォルトはMojolicious::Plugin。
# プラグインをロードする他の名前空間を追加 push @{$plugins->namespaces}, 'MyApp::Plugin';
メソッド
Mojolicious::Pluginsは、Mojo::EventEmitterのすべてのメソッドを継承し、以下の新しいメソッドを実装しています。
emit_chain
$plugins->emit_chain('foo'); $plugins->emit_chain(foo => 123);
チェーンされたフックイベントを発行します。
emit_hook
$plugins = $plugins->emit_hook('foo'); $plugins = $plugins->emit_hook(foo => 123);
フックイベントを発行します。
emit_hook_reverse
$plugins = $plugins->emit_hook_reverse('foo'); $plugins = $plugins->emit_hook_reverse(foo => 123);
逆順でフックイベントを発行します。
load_plugin
my $plugin = $plugins->load_plugin('some_thing'); my $plugin = $plugins->load_plugin('SomeThing'); my $plugin = $plugins->load_plugin('MyApp::Plugin::SomeThing');
設定された名前空間かモジュールのフルネームから、プラグインをロードします。
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});
設定された名前空間かモジュールのフルネームからプラグインをロードし、register
を実行します。 オプションの引数は、register
に渡されます。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を更新。2019年6月12日更新)