NAME

Mojolicious::Plugin::Config - Perl-ish configuration plugin

SYNOPSIS

# myapp.conf
{
  foo       => "bar",
  music_dir => app->home->rel_dir('music')
};

# Mojolicious
my $config = $self->plugin('Config');

# Mojolicious::Lite
my $config = plugin 'Config';

# Reads myapp.conf by default and puts the parsed version into the stash
my $config = $self->stash('config');

# Everything can be customized with options
my $config = plugin Config => {
  file      => '/etc/myapp.stuff',
  stash_key => 'conf'
};

DESCRIPTION

Mojolicious::Plugin::Config is a Perl-ish configuration plugin. The application object can be accessed via the app helper. You can extend the normal config file myapp.conf with mode specific ones like myapp.$mode.conf.

OPTIONS

Mojolicious::Plugin::Config supports the following options.

default

# Mojolicious::Lite
plugin Config => {default => {foo => 'bar'}};

Default configuration.

ext

# Mojolicious::Lite
plugin Config => {ext => 'stuff'};

File extension of config file, defaults to conf.

file

# Mojolicious::Lite
plugin Config => {file => 'myapp.conf'};
plugin Config => {file => '/etc/foo.stuff'};

Configuration file, defaults to the value of the MOJO_CONFIG environment variable or myapp.conf in the application home directory.

stash_key

# Mojolicious::Lite
plugin Config => {stash_key => 'conf'};

Configuration stash key.

HELPERS

Mojolicious::Plugin::Config implements the following helpers.

config

%= config 'something'
%= config->{something}

Access config values.

METHODS

Mojolicious::Plugin::Config inherits all methods from Mojolicious::Plugin and implements the following new ones.

load

$plugin->load($file, $conf, $app);

Loads config file and passes the content to parse.

sub load {
  my ($self, $file, $conf, $app) = @_;
  ...
  return $self->parse($content, $file, $conf, $app);
}

parse

$plugin->parse($content, $file, $conf, $app);

Parse config file.

sub parse {
  my ($self, $content, $file, $conf, $app) = @_;
  ...
  return $hash;
}

register

$plugin->register;

Register plugin in Mojolicious application.

DEBUGGING

You can set the MOJO_CONFIG_DEBUG environment variable to get some advanced diagnostics information printed to STDERR.

MOJO_CONFIG_DEBUG=1

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.