[Catalyst] Re: question for mst : using $c->config->{blah} ...

Matt S Trout dbix-class at trout.me.uk
Mon Aug 4 10:14:48 BST 2008


On Sun, Aug 03, 2008 at 06:30:02PM +0200, Daniel McBrearty 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?

How isn't something like connect_info real config?

Put the config in a block specific to the model/view/controller that needs
it and access stuff from within that component via $self->{whatever}, for
preference.

$self->config is broken since it only gives you the class level defaults
which is why you should never call it.

$c->config is an acceptable workaround for the fact we don't have a seperate
app object so you can't do $c->app->my_var yet, but you should try and avoid
needing it wherever possible.

My preferred trick is to start off with a config file tailored to how the
user sees it and wrap finalize_config to mangle it into appropriate
components' config - see for e.g.

http://code2.0beta.co.uk/reaction/svn/Reaction-Example-MailerForm/1.000/trunk/lib/MailerForm/ConfigFilter.pm

and

http://code2.0beta.co.uk/reaction/svn/Reaction-Example-MailerForm/1.000/trunk/t/config_filter.t

for some simple mangling code and the end result - example configfile is at

http://code2.0beta.co.uk/reaction/svn/Reaction-Example-MailerForm/1.000/trunk/mailerform.conf

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/            http://www.shadowcat.co.uk/servers/



More information about the Catalyst mailing list