[Catalyst] Reasonable way to get $c->config into Result class?

will trillich will at serensoft.com
Tue Dec 13 00:49:07 GMT 2011


We have a Catalyst app where incidents can have attachments, and the
attachments are stored in the filesystem (MySql backend is lethargic for
in-DB binary blobs).

Right now we're using a package global for storing the file-path-root, but
obviously this should be handled via config somehow. Is there an elegant
way to use MyApp.conf to set up a file-path that can get to $self->config
consistently?

If we use
    package MyApp::Schema::DB::Result::Incident;
    #...
    has 'config' =3D> ( is =3D> 'rw' );
    #...
then in the Controller we have to inject something into $incident->config
manually at create-time like so:

    package MyApp::Web::Controller::Incident;
    #...
    my $incident =3D $c->model('MyApp::Incident')->find({ id =3D> $id });
    $incident->config( $c->config );

But that only works in the context of a controller. If instead, we're
coming in from a related record, such as an attachment, then
$attachment->incident->config won't have any info, and no way to get it.

I can see where DBIx::Class::Schema::Config allows pre-configuring
credentials to connect to a database, but that's not what we're looking for
here.

Right now we have the file-path config stored in a global (yecch!) in the
Result class, but would much rather have it in myapp.conf somehow...

Clue stick welcome.


-- =

-- =

will trillich -- http://faq.serensoft.com/
"The truth is that many people set rules to keep
from making decisions." -- Mike Krzyzewski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20111213/16f53=
0a8/attachment.htm


More information about the Catalyst mailing list