PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Database » DB_DataObject » Bug #6153

class_exists() in DB_DataObject::factory() method

Details

Request #6153class_exists() in DB_DataObject::factory() method
Submitted2005-12-05 13:03 UTC
Fromdoctor at hmportal dot pl
Assignedalan_k
StatusClosed
PackageDB_DataObject
PHP Version5.0.4
OSWindows XP
Roadmaps(Not assigned)

Comments

[2005-12-05 13:03 UTC] doctor at hmportal dot pl

Description:
------------
(DataObject.php at line 2322)

$class = (class_exists($class)) ? $class : DB_DataObject::_autoloadClass($class);

The class_exists() function in DB_DataObject::factory() method calls __autoload in PHP5 by default. Custom __autoload function will be called before DataObject's _autoloadClass(). __autoload may waste pretty much CPU time looking for a class file before it fails.

Change request:
2322c2322
< $class = (class_exists($class)) ? $class : DB_DataObject::_autoloadClass($class);
---
> $class = (class_exists($class, false)) ? $class : DB_DataObject::_autoloadClass($class);

Test script:
---------------
function __autoload($classname) {
echo "Custom autoload function searching over many directories for required file<br>";
}

//some DataObjects's table, __autoload will be called
$table = DB_DataObject::factory('table');

Expected result:
----------------
function __autoload($classname) {
echo "Custom autoload function searching over many directories for required file<br>";
}

//some DataObjects's table, __autoload won't be called
$table = DB_DataObject::factory('table');