Mojolicious::Plugin::Config - Perl的なコンフィグプラグイン
使い方
# myapp.conf (it's just Perl returning a hash)
{
# Just a value
foo => "bar",
# Nested data structures are fine too
baz => ['♥'],
# You have full access to the application
music_dir => app->home->child('music')
};
# Mojolicious
my $config = $self->plugin('Config');
say $config->{foo};
# Mojolicious::Lite
my $config = plugin 'Config';
say $config->{foo};
# foo.html.ep
%= $config->{foo}
# 設定はアプリケーション全体で利用可能
my $config = app->config;
say $config->{foo};
# オプションですべてがカスタマイズ可能
my $config = plugin Config => {file => '/etc/myapp.stuff'};
説明
Mojolicious::Plugin::ConfigはPerl的なコンフィグプラグインです。
$app変数かapp関数を通して、アプリケーションオブジェクトにアクセスできます。 strict, warnings, utf8と Perl 5.10 featuresが自動的に 有効になっています。 通常のコンフィグファイルmyapp.confをmyapp.$mode.confのように modeを指定して拡張することができます。 デフォルトのコンフィグのファイル名はアプリケーションクラスは Mojoliciousのmonikerメソッドの値から生成されます。
デフォルトで利用可能なプラグインの一覧はMojolicious::Pluginsのプラグインの項目を見てください。
オプション
default
# Mojolicious::Lite
plugin Config => {default => {foo => 'bar'}};
デフォルトの設定。設定ファイルをオプショナルなものにします。
ext
# Mojolicious::Lite
plugin Config => {ext => 'stuff'};
コンフィグファイルのファイル拡張子です。デフォルトはconf。
file
# Mojolicious::Lite
plugin Config => {file => 'myapp.conf'};
plugin Config => {file => '/etc/foo.stuff'};
コンフィグファイル。デフォルトはMOJO_CONFIGの値かアプリケーションのホームディレクトリの中の$moniker.conf です。
メソッド
Mojolicious::Plugin::ConfigはMojolicious::Plugin のすべてのメソッドを継承しており、次の新しいメソッドを実装しています。
load
$plugin->load($file, $conf, $app);
コンフィグファイルをロードし、コンテンツをparseに渡します。
sub load {
my ($self, $file, $conf, $app) = @_;
...
return $self->parse($content, $file, $conf, $app);
}
parse
$plugin->parse($content, $file, $conf, $app);
コンフィグファイルを解析します。
sub parse {
my ($self, $content, $file, $conf, $app) = @_;
...
return $hash;
}
register
my $config = $plugin->register(Mojolicious->new);
my $config = $plugin->register(Mojolicious->new, {file => '/etc/app.conf'});
Mojoliciousアプリケーションにプラグインを登録し、設定をマージします。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年6月12日更新)
Mojoliciousドキュメント日本語訳