I built for mod_perl1 a customer webapp framework

It functions as 2 perl modules/package sets

/lib/WebAppFramework
/lib/Website

For each website/webapp, i make a new /lib/Website that subclasses the WebAppFramework (which handles users, email, webpage generation, etc -- and makes heavy use of cpan modules -- i just wanted a way to find a lowest-common-denominator to interface with multiple packages, so i can rapidly prototype webapps)

It worked really well for everything I want it to do -- super simple and easy to build and add functions.

except - its a little messy

The idea I wanted to implement, is essentially this handler:

my $DB = new Website::DB();
sub handler {
DEBUG >0 && print STDERR "============================ NEW REQUEST\n\n";
my $r = shift;
my $user = new Website::User( \$r, \$DB );
my $page = new Website::Page( \$user , \$DB );
my $html = $page->processRequest();
$r->content_type('text/html');
$r->print( $html );
return OK;
}


The idea, is that any page is just a view to a user (logged in or not), so is rendered to that person.

Now, this is my issue -- I'm creating a user AND a page with a ref to the DB handle - which is wasteful. And requires a lot of extra typing on my part.

Ideally, I would have the packages in Website and WebAppFramework lookup the right DB for the Website

I can't figure out how to do this in a coherent way though.

Any  advice would be excellent.


-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html



Reply via email to