Catalyst::Plugin::ConfigLoader::Manual(3p)

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);'

  Using UTF-8 strings in a Config::General file
If you have UTF-8 strings in your Config::General-based config file, you should add the following config information to MyApp.pm:

    __PACKAGE__->config( 'Plugin::ConfigLoader' => {
        driver => {
            'General' => { -UTF8 => 1 },
        }
    } );