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