On Apr 24, 2006, at 12:56 PM, Michael Peters wrote:
Cees Hek wrote:
On 4/24/06, Ed Pigg <[EMAIL PROTECTED]> wrote:
So how I put things like session initialization, database
connection,
etc.. in the SUPER::cgiapp_init sub. So my SUB CLASS would be
something like
sub cgiapp_init {
my $self = shift;
$self->SUPER::cgiapp_init(@_);
$self->start_mode();
$self->run_modes( ... );
}
Yes, that would work. But if you are doing stuff like session init
and database connections, and you are sure you want to do this on all
requests, for every runmode, then I would suggest using Michael's
suggestion and set up a callback (which will always run regardless of
what you do in the subclass). That is safer, since you don't have to
remember to add that SUPER call in the subclass everytime.
__PACKAGE__->add_callback(init => \&_my_init);
If you're just doing the standard stuff (session initialization, db
connection, etc) there are plugins that will take care of that for
you.
One of the biggest benefits of those plugins is that most of them do
lazy loading, so no db connection is created until you use it.
It is probably a combination of too much caffine, not enough sleep,
eye's bleary from looking through docs and code, but I think I made a
fundamental error in my example that, when I correct it, will make
things much clearer.
I will keep cgiapp_init in the base class and this will handle the
cgiapp_init for the sub classes. My example used cgiapp_init sub in
the subclass, there by overriding the base class cgiapp_init. What I
really want to do is override setup. Duh!!
Thanks for all of your help and insight Michael, Cees, and Jaclyn.
Ed Pigg
---------------------------------------------------------------------
Web Archive: http://www.mail-archive.com/[email protected]/
http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]