Mojolicious::Plugin::JSONConfig - JSONコンフィグプラグイン
使い方
# myapp.json (これは埋め込みのPerlが利用できるJSONです。)
{
%# 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('JSONConfig');
say $config->{foo};
# Mojolicious::Lite
my $config = plugin 'JSONConfig';
say $config->{foo};
# foo.html.ep
%= $config->{foo}
# 設定はアプリケーション全体で利用可能
my $config = app->config;
say $config->{foo};
# オプションですべてをカスタマイズ可能
my $config = plugin JSONConfig => {file => '/etc/myapp.conf'};
説明
Mojolicious::Plugin::JSONConfigはMojo::Templateでその入力を前処理するJSONコンフィグプラグインです。
アプリケーションオブジェクトは$appあるいはappヘルパーを通してアクセスされます。 通常のコンフィグファイルであるmyapp.jsonは、myapp.$mode.jsonのようにモードを指定することによって拡張することができます。 デフォルトのコンフィグのファイル名はアプリケーションクラスはMojolicious のmonikerメソッドの値から生成されます。
デフォルトで利用可能なプラグインの一覧はMojolicious::Pluginsのプラグインの項目を見てください。
オプション
Mojolicious::Plugin::JSONConfigはMojolicious::Plugin::Configと同じオプションを 受け取り、次の新しいオプションがあります。
template
# Mojolicious::Lite
plugin JSONConfig => {template => {line_start => '.'}};
Mojo::Templateオブジェクトに渡される属性値、 設定ファイルを前処理するために利用されます。
ヘルパー
Mojolicious::Plugin::JSONConfigはMojolicious::Plugin::Configから すべてのヘルパーを継承しています。
メソッド
Mojolicious::Plugin::JSONConfig>は Mojolicious::Plugin::Configのすべてのメソッドを実装しており、 次の新しいメソッドを実装しています。
parse
$plugin->parse($content, $file, $conf, $app);
renderでコンテンツを処理し、Mojo::JSONで解析します。
sub parse {
my ($self, $content, $file, $conf, $app) = @_;
...
$content = $self->render($content, $file, $conf, $app);
...
return $hash;
}
register
my $config = $plugin->register(Mojolicious->new);
my $config = $plugin->register(Mojolicious->new, {file => '/etc/foo.conf'});
Mojoliciousアプリケーションにプラグインを登録します。
render
$plugin->render($content, $file, $conf, $app);
Mojo::Templateでコンフィグファイルを処理します。
sub render {
my ($self, $content, $file, $conf, $app) = @_;
...
return $content;
}
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年6月12日更新)
Mojoliciousドキュメント日本語訳