PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

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');