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日更新)