[Catalyst] Re: question for mst : using $c->config->{blah} ...
J. Shirley
jshirley at gmail.com
Mon Aug 4 03:27:53 BST 2008
On Sun, Aug 3, 2008 at 9:30 AM, Daniel McBrearty
<danielmcbrearty at gmail.com> wrote:
> wait, it is on $self not $c, so my reservations don't really apply.
>
> but what about reall config stuff that can change from one
> installation to another? then you have to do $c->config->{my_var},
> right?
It's all merged properly if you use ConfigLoader.
In your MyApp.pm if you have:
__PACKAGE__->config(
'Model::Foo' => { bar => 'baz' }
);
And in MyApp/Model/Foo.pm you have:
__PACKAGE__->config(
bar => 'foo'
);
If you have a method in Model::Foo, $self->{bar} will be equal to 'baz'.
The order is always Component -> App -> External Conf. External Conf
has other orders, but that's another email.
You never want to use $c->config because $c->config->{'Model::Foo'}
should, and in most cases will, be equal to $self->{...} config keys,
you aren't guaranteed that.
You are, however, guaranteed that $self->{...} keys are populated from
config after component construction (component time, I believe)
(mst, feel free to correct me if I got any points wrong :))
More information about the Catalyst
mailing list