X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=9cc2a0699e353b31ccf90432f94ed091fa1a9f25;hp=47b4e30cf03e6b4db8e04f7585210f963c226001;hb=b354201608d428db344c63dd35de096a62a7a9d3;hpb=9e5ac6dfd960cbf38a1e091c807a30de310740bf diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 47b4e30..9cc2a06 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -807,12 +807,34 @@ Returns or takes a hashref containing the application's configuration. __PACKAGE__->config( { db => 'dsn:SQLite:foo.db' } ); You can also use a C, C or C config file -like myapp.yml in your applications home directory. See +like myapp.conf in your applications home directory. See L. - --- - db: dsn:SQLite:foo.db +=head3 Cascading configuration. +The config method is present on all Catalyst components, and configuration +will be merged when an application is started. Configuration loaded with +L takes precedence over other configuration, +followed by configuration in your top level C class. These two +configurations are merged, and then configuration data whos hash key matches a +component name is merged with configuration for that component. + +The configuration for a component is then passed to the C method when a +component is constructed. + +For example: + + MyApp->config({ 'Model::Foo' => { bar => 'baz', overrides => 'me' } }); + MyApp::Model::Foo->config({ quux => 'frob', 'overrides => 'this' }); + +will mean that C receives the following data when +constructed: + + MyApp::Model::Foo->new({ + bar => 'baz', + quux => 'frob', + overrides => 'me', + }); =cut @@ -914,7 +936,7 @@ sub plugin { my ( $class, $name, $plugin, @args ) = @_; # See block comment in t/unit_core_plugin.t - $class->log->warn(qq/Adding plugin using the ->plugin method is deprecated, and will be removed in Catalyst 5.9/); + $class->log->warn(qq/Adding plugin using the ->plugin method is deprecated, and will be removed in Catalyst 5.81/); $class->_register_plugin( $plugin, 1 );