Thanks Geoffrey.

Marty
----- Original Message ----- 
From: "Geoffrey Young" <[EMAIL PROTECTED]>
To: "Martin Moss" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Tuesday, June 17, 2003 4:23 PM
Subject: Re: Can't call method "is_initial_req" without a package or object
reference at .........


>
>
> Martin Moss wrote:
> > Ok, that makes sense, thank you:-)
> > But 'What' should I return, is $r->main the right thing to return?
>
> I've found that it's pretty rare that you want to mess with main vs
subrequest logic
> yourself.  instead, I would just make the constructor return an object
based on whatever
> mod_perl passes it which is, in turn, whatever request record Apache deems
to be the
> proper one for the current (sub)request.
>
> so new() should probably just be something like
>
> sub new {
>
>    my ($class, $r) = @_;
>
>    $r = Apache::Request->new($r);
>
>    my $self = bless {_r => $r}, $class;
>
>    $self->init();
>
>    return $self;
> }
>
> if it is important to insure that you only populate object attributes
once, even in the
> case of internal redirects or lookups, you could hang attributes off of
pnotes in the main
> request
>
> sub init {
>
>    my $self = shift;
>
>    $t = ubstr(Digest::MD5...);
>
>    if ($r->main) {
>      $self->{XX_created_time_XX} = $t;
>      $self->{_r}->pnotes(XX_created_time_XX => $t)
>    }
>    else {
>      $t = $self->{_r}->main->pnotes('XX_created_time_XX');
>    }
>    ...
> }
>
> or somesuch.  untested, but you get the idea :)
>
> HTH
>
> --Geoff
>
>

Reply via email to