From: Matthias Dietrich Date: Tue, 15 Jun 2010 11:53:05 +0000 (+0000) Subject: Applied doc patches that might help to figure out how to receive component's config... X-Git-Tag: 5.80025~2^2~7 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=f8a54681762e3fa6b09dce9f44ba40f82cacc70a Applied doc patches that might help to figure out how to receive component's config values. --- diff --git a/Changes b/Changes index 25bcbc3..f8ee533 100644 --- a/Changes +++ b/Changes @@ -7,6 +7,8 @@ Documentation: - Fix missing - in the docs when describing the --mechanize option at one point. + - Explained the common practice how to access the component's config + values. 5.80024 2010-05-15 11:55:44 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 26b7649..f80f8a1 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -903,6 +903,21 @@ constructed: overrides => 'me', }); +It's common practice to use a Moose attribute +on the receiving component to access the config value. + + package MyApp::Model::Foo; + + use Moose; + + # this attr will receive 'baz' at construction time + has 'bar' => ( + is => 'rw', + isa => 'Str', + ); + +You can then get the value 'baz' by calling $c->model('Foo')->bar + =cut around config => sub { @@ -3183,6 +3198,8 @@ wreis: Wallace Reis Yuval Kogman, C +rainboxx: Matthias Dietrich, C + =head1 LICENSE This library is free software. You can redistribute it and/or modify it under diff --git a/lib/Catalyst/Component.pm b/lib/Catalyst/Component.pm index 2fd7181..28da155 100644 --- a/lib/Catalyst/Component.pm +++ b/lib/Catalyst/Component.pm @@ -170,7 +170,7 @@ to be stored in the application's component hash. C<< my $component_instance = $component->COMPONENT($app, $arguments); >> -If this method is present (as it is on all Catalyst::Component subclasses, +If this method is present (as it is on all Catalyst::Component subclasses), it is called by Catalyst during setup_components with the application class as $app and any config entry on the application for this component (for example, in the case of MyApp::Controller::Foo this would be @@ -200,6 +200,12 @@ key value pair, or you can specify a hashref. In either case the keys will be merged with any existing config settings. Each component in a Catalyst application has its own config hash. +The component's config hash is merged with any config entry on the +application for this component and passed to C (as mentioned +above at L). The common practice to access the merged +config is to use a Moose attribute for each config entry on the +receiving component. + =head2 $c->process() This is the default method called on a Catalyst component in the dispatcher.