Actually it's not when you want to separate Output Buffering from
ErrorHandling. :) . and YES, you can access "obHandler" when it is
protected, because you extends the abstract base class, but it fails
miserably on the "$this->getMe ()" error type.

 

From: Diogo Neves [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 04, 2008 7:46 PM
To: Catalin Zamfir Alexandru | KIT Software CAZ
Cc: PHP Internals List
Subject: Re: [PHP-DEV] Ob_start, "protected" obHandler method, nod detecting
$this->geMe () kind of error!

 

 

On Thu, Sep 4, 2008 at 4:47 PM, Catalin Zamfir Alexandru | KIT Software CAZ
<[EMAIL PROTECTED]> wrote:

Abstract class Output_Buffering {
       Protected static function obStart () {
               Ob_start ('ErrorH::obHandler');
               Set_our_error_handler ('some_error_h_we_have');
       }
}

Class ErrorH extends Output_Buffering {
       Protected static obHandler {
               SNIPET OF CODE to detect parse errors, save the content in
an array that will be outputted at the end of the script!
       }
}

If the "obHandler" method is "public" the "$this->getMe ()" from GLOBAL
context will get detected. If "protected", the obHandler method, for the
"$this->getMe ()" error isn't even called.

       I know this because when it's public I can generate the error and
"error_log ()" it, but when it is "protected", the error_log isn't even
called inside the obHandler method, so the obHandler method isn't even
called.


Well, ob_start can't access a protected method...
Think like, if u can't do ErrorH::SomeMethod, u can't do ob_start(
ErrorH::SomeMethod ).

PS: U really need to call a method of a class that extend your actual class?
It's seems like a bit circular :S


-----Original Message-----
From: Diogo Neves [mailto:[EMAIL PROTECTED]

Sent: Thursday, September 04, 2008 6:29 PM
To: Catalin Zamfir Alexandru | KIT Software CAZ
Cc: PHP Internals List
Subject: Re: [PHP-DEV] Ob_start, "protected" obHandler method, nod detecting
$this->geMe () kind of error!

On Thu, Sep 4, 2008 at 3:36 PM, Catalin Zamfir Alexandru | KIT Software CAZ
<[EMAIL PROTECTED]> wrote:

> This is my PHP:
> PHP 5.2.6-pl6-gentoo (cli) (built: Aug 17 2008 01:02:28)
> Copyright (c) 1997-2008 The PHP Group
> Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
>
> -----Original Message-----
> From: Catalin Zamfir Alexandru | KIT Software CAZ
> [mailto:[EMAIL PROTECTED]
> Sent: Thursday, September 04, 2008 5:34 PM
> To: 'Diogo Neves'
> Cc: 'PHP Internals List'
> Subject: RE: [PHP-DEV] Ob_start, "protected" obHandler method, nod
> detecting
> $this->geMe () kind of error!
>
> Yes, that's the "so-called bug" I'm talking about. Having the obHandler
> marked as "protected" makes "$this->getMe ()" kind of errors, from GLOBAL
> context undetectable, while Parse/Notice/Warning errors are stil there,
> even
> if the "$this->getMe ()" error is marked as "Fatal Error:". Here: Fatal
> error: Using $this when not in object context in
> /var/www/localhost/htdocs/dev/ALFA/index.php on line 26 (this is when
> obHandler = public).
>
> A blank page = when obHandler = protected, but Parse/Notice/any other kind
> of errors are still detected. :)
>
> -----Original Message-----
> From: Diogo Neves [mailto:[EMAIL PROTECTED]
> Sent: Thursday, September 04, 2008 5:24 PM
> To: Catalin Zamfir Alexandru | KIT Software CAZ
> Cc: PHP Internals List
> Subject: Re: [PHP-DEV] Ob_start, "protected" obHandler method, nod
> detecting
> $this->geMe () kind of error!
>
> On Thu, Sep 4, 2008 at 3:21 PM, Catalin Zamfir Alexandru | KIT Software
CAZ
> <[EMAIL PROTECTED]> wrote:
>
> > Yes, excuse my English would be appropriate. I was in a hurry when
> writing
> > the email. Waiting for feedback from you guys ...
> >
> > -----Original Message-----
> > From: Catalin Zamfir Alexandru | KIT Software CAZ
> > [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, September 04, 2008 5:17 PM
> > To: 'PHP Internals List'
> > Subject: [PHP-DEV] Ob_start, "protected" obHandler method, nod detecting
> > $this->geMe () kind of error!
> >
> > Hello guys,
> >
> >                We have too clases:
> >
> > -          Abstract class OutputBuffering
> >
> > -          Class ErrorHandler extends OutputBuffering, implements
> obHandler
> > as a "protected" method. I can detect: set_error_handler errors, through
> a
> > specific error handler (and obError method - I can detect any
> > notice/warning/fatal) and also "Parse errors" in obHandler, through
> > "parsing" error_prepend/error_append strings in the Output Buffer
string.
> >
> >
> >
> > When the obHandler methos is "protected", the "$this->getMe ()" from
> GLOBAL
> > context cannot be detected. When the method is "public", the detection
> goes
> > as usual. The MANUAL Page on "ob_start" doesn't say anything about
> > declaring
> > the method "public". What if I want the "obHandler" method to not be
> > accessible by the developer, but only by inheriting objects?!
> >
> >
> >
> > Thanks for any feedback.
> >
> >
> >
> > Regards,
> >
> > Catalin Z. Alexandru
> >
> >
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> > Did you tried protected? I'm not really good with this things, but a
> protected method can be inherited but not acessed outside the class ;)
>
> --
> Thanks,
>
> Diogo Neves
> Web Developer @ SAPO.pt by PrimeIT.pt
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
> Can you send a small example of code?


--
Thanks,

Diogo Neves
Web Developer @ SAPO.pt by PrimeIT.pt




-- 
Thanks,

Diogo Neves
Web Developer @ SAPO.pt by PrimeIT.pt

Reply via email to