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