NAME

Catalyst::Plugin::ConfigLoader::Manual - Guide to using the ConfigLoader plugin

BASIC USAGE

package MyApp;

use Catalyst qw( ConfigLoader ... );

ENVIRONMENT VARIABLES

  • MYAPP_CONFIG - specific config file to load for "MyApp"

  • CATALYST_CONFIG_LOCAL_SUFFIX - global suffix for extra config files

  • MYAPP_CONFIG_LOCAL_SUFFIX - suffix specifically for "MyApp"

CONFIG FORMATS

Config::General

Extensions

  • cnf

  • conf

Example Config

name = TestApp
<Component Controller::Foo>
    foo bar
</Component>
<Model Baz>
    qux xyzzy
</Model>

INI

Extensions

  • ini

Example Config

name=TestApp

[Controller::Foo]
foo=bar

[Model::Baz]
qux=xyzzy

JSON

Extensions

  • jsn

  • json

Example Config

{
    "name": "TestApp",
    "Controller::Foo": {
        "foo": "bar"
    },
    "Model::Baz": {
        "qux": "xyzzy"
    }
}

Perl

Extensions

  • pl

  • perl

Example Config

{
    name => 'TestApp',
    'Controller::Foo' => {
        foo => 'bar'
    },
    'Model::Baz' => {
        qux => 'xyzzy'
    }
}

XML

Extensions

  • xml

Example Config

<config>
    <name>TestApp</name>
    <component name="Controller::Foo">
        <foo>bar</foo>
    </component>
    <model name="Baz">
        <qux>xyzzy</qux>
    </model>
</config>

YAML

Extensions

  • yml

  • yaml

Example Config

---
name: TestApp
Controller::Foo:
    foo: bar
Model::Baz:
    qux: xyzzy

COOKBOOK

Configuring a Catalyst::Model::DBIC::Schema model from a YAML config

Model::MyModel:
  schema_class: MyApp::MySchema
  connect_info:
    - dbi:SQLite:myapp.db
    - ''
    - ''
    - AutoCommit: 1 

Converting your existing config to Config::General format

As of Catalyst::Devel 1.07, a newly created application will use Config::General for configuration. If you wish to convert your existing config, run the following one-liner (replacing MyApp with your app's name):

perl -Ilib -MMyApp -MConfig::General -e 'Config::General->new->save_file("myapp.conf", MyApp->config);'