[Catalyst] Setting config after setup has been run is not allowed.
Bill Moseley
moseley at hank.org
Fri Sep 25 13:37:51 GMT 2015
I'm confused about this rather stern note in Catalyst.pm.
Is this the following wrapper related to the text in the NOTE?
B<NOTE:> you MUST NOT call C<< $self->config >> or C<< __PACKAGE__->config
>>
as a way of reading config within your code, as this B<will not> give you
the
correctly merged config back. You B<MUST> take the config values supplied to
the constructor and use those instead.
=cut
around config => sub {
my $orig = shift;
my $c = shift;
croak('Setting config after setup has been run is not allowed.')
if ( @_ and $c->setup_finished );
$c->$orig(@_);
};
I understand the NOTE for Model/View/Controllers where the component's
__PACKAGE__->config is merged in with the application config for that
component. Calling $self->config won't be the same thing passed to the
component's constructor.
But, what's the issue with calling $c->config( foo => 123 ) at runtime?
Or even $c->config( \%new_config )?
Note that wrapper only applies to calling config on the app class, and does
not apply to Model/View/Controllers.
Is there some other issues I'm missing? What problem is that wrapper
trying to prevent?
Thanks,
--
Bill Moseley
moseley at hank.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scsys.co.uk/pipermail/catalyst/attachments/20150925/ac079e36/attachment.htm>
More information about the Catalyst
mailing list