[PEAR-BUG] Bug #18749 [Opn]: is_a() behavior changed in php 5.3.7

[email protected]
Newsgroups php.pear.bugs
Message-ID <[email protected]>
Edit report at http://pear.php.net/bugs/bug.php?id=18749&edit=1

 ID:               18749
 Updated by:       [email protected]
 Reported By:      php at gartneriet dot dk
 Summary:          is_a() behavior changed in php 5.3.7
 Status:           Open
 Type:             Bug
 Package:          DB_DataObject
 Package Version:  1.9.5
 PHP Version:      5.3.7
 Roadmap Versions: 
 New Comment:

5.3.8 is out today; but the bug doesn't look closed.

What are the alternative options if PHP 5.3.* doesn't resolve this? Set
a max PHP 
version in the package.xml and create a DB_DataObject2?


Previous Comments:
------------------------------------------------------------------------

[2011-08-23 16:52:12] rjha94

Alan, I see your  point and I also believe that they broke it (no matter
what they say) but  the concern here is that php folks may not fix it
and I moved to  5.3.7 for a reason (promise of better fpm support)

isn't; changing is_a to instance of a better solution? Maybe I can do
that for HTML_Template_Flexy (because I use it) and send you the
patches??

------------------------------------------------------------------------

[2011-08-23 08:42:05] alan_k

Let's follow the bug and see what happens, I think it's a serious BC
break. It's changing the 
documented behaviour...

https://bugs.php.net/bug.php?id=55475

------------------------------------------------------------------------

[2011-08-23 07:52:31] madsliejensen

Maybe not, but some people say that is_a() in 5.3.7 is working as it
should, but that changing behavior in a minor release is no good. And
that 5.3.8 might fix this, but that in 5.4 is_a() will be changed to
work as it currently does in 5.3.7

Perhaps, just to be a little ahead of time, it should be fixed anyway?

------------------------------------------------------------------------

[2011-08-23 07:48:14] alan_k

It's a known bug in 5.3.7, 5.3.8 is comming out very soon, so I'm not
sure it's worth fixing.

------------------------------------------------------------------------

[2011-08-23 07:25:34] madsliejensen

Description:
------------
In php 5.3.7 is_a() will now trigger the autoloader if the first
argument is not an object.

DB_DataObject uses a line like:
if (is_a($this->$k,'DB_DataObject_Cast')) {
in several places, but in most cases $this->$k is a string, and it will
then trigger any __autoload() you have in your project. 

Which again will result in warnings thrown by php when the file is not
found. 

These warnings are annoying, but DB_DataObject is still working as it
should.

------------------------------------------------------------------------


-- 
Edit this bug report at http://pear.php.net/bugs/bug.php?id=18749&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.