[Catalyst] Re: Sharing a database handle between components
Aristotle Pagaltzis
pagaltzis at gmx.de
Sun Feb 10 08:52:21 GMT 2008
* Matt S Trout <dbix-class at trout.me.uk> [2008-02-10 08:50]:
> T::P::DBI should probably be able to take a subref that
> provides a dbh and use it on-demand. Or even one that provides
> an sth ...
I already patched that in, in preparation of having the DBH
managed by something that handles reconnects et al.
Guess I need to also patch it to defer the `prepare_cached` call.
> To reduce coupling I'd probably do (in MyAPP)
>
> __PACKAGE__->config(
> 'View::TT' => { template_db_model => 'Foo' }
> );
>
> and then have the view use thatas the arg to $c->model during new.
That still couples the view to a specific type of model though:
how to get the DBH out of a DBIC::Schema model is different from
how to do it with a DBI model, and with the approach you propose,
that logic lives in the view class.
I guess the right thing here would be even straighter:
__PACKAGE__->config(
'View::TT' => { DBI_DBH => sub { __PACKAGE__->model('Foo')->dbh } }
);
If I understand the mechanics of `config` correctly, that will
pass straight through to T::P::DBI.
Hmm. Will try and see if it pans out.
Regards,
--
Aristotle Pagaltzis // <http://plasmasturm.org/>
More information about the Catalyst
mailing list