名前

Mojolicious::Plugin::JSONConfig - JSONコンフィグプラグイン

Mojolicious::Plugin::JSONConfigMojo::Templateでその入力を前処理するJSONコンフィグプラグインです。

アプリケーションオブジェクトは$appあるいはappヘルパーを通してアクセスされます。 通常のコンフィグファイルであるmyapp.jsonは、myapp.$mode.jsonのようにモードを指定することによって拡張することができます。 デフォルトのコンフィグのファイル名はアプリケーションクラスはMojoliciousmonikerメソッドの値から生成されます。

デフォルトで利用可能なプラグインの一覧はMojolicious::Pluginsプラグインの項目を見てください。

使い方

# 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::JSONConfigMojolicious::Plugin::Configと同じオプションを 受け取り、次の新しいオプションがあります。

template

# Mojolicious::Lite
plugin JSONConfig => {template => {line_start => '.'}};

Mojo::Templateオブジェクトに渡される属性値、 設定ファイルを前処理するために利用されます。

ヘルパー

Mojolicious::Plugin::JSONConfigMojolicious::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日更新)