On Oct 18, 2006, at 3:17 PM, Michael Greenish wrote:
For now, I have reverted to not using Apache2::Reload, which is kind of a shame since I am still in the development stages of my application.
Just have your handler call another sub, and do everything in there. Apache2::Reload will definately pick up the changes
I'm attaching my working handlers below. preview_check runs in an early apache hook- can't remember which one.it sets up the environment, creates a PageUser ( aka $ctx ) and tests the ctx object to see if it has the preview cookie set- redirected if necessary.
handler runs during the expected mp output stage. it pulls environment stuff from pnotes, dispatches the page to be processed, and then prints output.
Everything I do in the main handler happens in the Page namespace.On my tests just now, changes to package FindMeOn are never caught by Apache2::Reload.
However, any changes to FindMeOn::Page (which checks for permissions / dispatches / etc ) are always caught.
=====================================================================
package FindMeOn;
sub preview_check {
my ( $r )= shift;
Apache2::RequestUtil->request($r);
my $apr= Apache2::Request->new( $r , DISABLE_UPLOADS=>1 ,
POST_MAX=>10_000 );
$r->pnotes( 'apr'=> $apr );
my $PageUser= FindMeOn::PageUser->new( $r , $apr );
$r->pnotes( 'PageUser'=> $PageUser );
# don't run this test on redirects
if ( $apr->location eq '/preview' ) {
return Apache2::Const::OK;
}
if ( !$PageUser->preview__can() )
{
$r->headers_out->set( Location=> '/preview/' );
$r->status(Apache2::Const::REDIRECT);
return Apache2::Const::REDIRECT;
}
return Apache2::Const::OK;
}
sub handler {
my ( $r )= shift;
my $PageUser= $r->pnotes('PageUser');
my $apr= $r->pnotes('apr');
my $Page= FindMeOn::Page->new( $PageUser );
$r->content_type('text/html');
eval {
$r->print( ${$Page->request__process()} );
$PageUser->finish() ;
};
if ( $@ ) {
$r->print( $@ );
return Apache2::Const::DONE;
}
return Apache2::Const::OK;
}
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.