Home » Database » DB_DataObject » Bug #6153
class_exists() in DB_DataObject::factory() method
Details
| Request #6153 | class_exists() in DB_DataObject::factory() method |
|---|---|
| Submitted | 2005-12-05 13:03 UTC |
| From | doctor at hmportal dot pl |
| Assigned | alan_k |
| Status | Closed |
| Package | DB_DataObject |
| PHP Version | 5.0.4 |
| OS | Windows 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');