diff --git a/core/ClassInfo.php b/core/ClassInfo.php index e1e3d5a18..503df0bab 100644 --- a/core/ClassInfo.php +++ b/core/ClassInfo.php @@ -12,16 +12,16 @@ class ClassInfo { * @todo Improve documentation */ static function allClasses() { - global $_ALL_CLASSES; - return $_ALL_CLASSES['exists']; + global $_CLASS_MANIFEST; + return ArrayLib::valuekey(array_keys($_CLASS_MANIFEST)); } /** * @todo Improve documentation */ static function exists($class) { - global $_ALL_CLASSES; - return isset($_ALL_CLASSES['exists'][$class]) ? $_ALL_CLASSES['exists'][$class] : null; + global $_CLASS_MANIFEST; + return class_exists($class, false) || array_key_exists(strtolower($class), $_CLASS_MANIFEST); } /** diff --git a/tests/ClassInfoTest.php b/tests/ClassInfoTest.php index bc3c49daa..53d261ef4 100644 --- a/tests/ClassInfoTest.php +++ b/tests/ClassInfoTest.php @@ -4,7 +4,13 @@ * @subpackage tests */ class ClassInfoTest extends SapphireTest { - + + public function testExists() { + $this->assertTrue(ClassInfo::exists('Object')); + $this->assertTrue(ClassInfo::exists('ClassInfoTest')); + $this->assertTrue(ClassInfo::exists('stdClass')); + } + function testSubclassesFor() { $this->assertEquals( ClassInfo::subclassesFor('ClassInfoTest_BaseClass'),