7 changed files with 380 additions and 3 deletions
-
225ext/spl/php_spl.c
-
3ext/spl/php_spl.h
-
131ext/spl/tests/spl_autoload_001.phpt
-
5ext/spl/tests/testclass
-
9ext/spl/tests/testclass.class.inc
-
5ext/spl/tests/testclass.inc
-
5ext/spl/tests/testclass.php.inc
@ -0,0 +1,131 @@ |
|||
--TEST-- |
|||
SPL spl_autoload() and friends |
|||
--INI-- |
|||
include_path=. |
|||
--FILE-- |
|||
<?php |
|||
|
|||
echo "===EMPTY===\n"; |
|||
|
|||
try |
|||
{ |
|||
spl_autoload("TestClass"); |
|||
} |
|||
catch(Exception $e) |
|||
{ |
|||
echo 'Exception: ' . $e->getMessage() . "\n"; |
|||
} |
|||
|
|||
$test_exts = array(NULL, "1", ".inc,,.php.inc", ""); |
|||
|
|||
foreach($test_exts as $exts) |
|||
{ |
|||
echo "===($exts)===\n"; |
|||
try |
|||
{ |
|||
spl_autoload("TestClass", $exts); |
|||
} |
|||
catch(Exception $e) |
|||
{ |
|||
echo 'Exception: ' . $e->getMessage() . "\n"; |
|||
} |
|||
} |
|||
|
|||
try |
|||
{ |
|||
spl_autoload_extensions(".inc,.php.inc"); |
|||
spl_autoload("TestClass"); |
|||
} |
|||
catch(Exception $e) |
|||
{ |
|||
echo 'Exception: ' . $e->getMessage() . "\n"; |
|||
} |
|||
|
|||
function TestFunc1($classname) |
|||
{ |
|||
echo __METHOD__ . "($classname)\n"; |
|||
} |
|||
|
|||
function TestFunc2($classname) |
|||
{ |
|||
echo __METHOD__ . "($classname)\n"; |
|||
} |
|||
|
|||
echo "===SPL_AUTOLOAD()===\n"; |
|||
|
|||
spl_autoload_register(); |
|||
|
|||
try |
|||
{ |
|||
spl_autoload_extensions(".inc"); |
|||
var_dump(class_exists("TestClass", true)); |
|||
} |
|||
catch(Exception $e) |
|||
{ |
|||
echo 'Exception: ' . $e->getMessage() . "\n"; |
|||
} |
|||
|
|||
echo "===REGISTER===\n"; |
|||
|
|||
spl_autoload_register("TestFunc1"); |
|||
spl_autoload_register("TestFunc2"); |
|||
spl_autoload_register("TestFunc2"); /* 2nd call ignored */ |
|||
spl_autoload_extensions(".inc,.class.inc"); /* we do not have spl_autoload_registered yet */ |
|||
|
|||
try |
|||
{ |
|||
var_dump(class_exists("TestClass", true)); |
|||
} |
|||
catch(Exception $e) |
|||
{ |
|||
echo 'Exception: ' . $e->getMessage() . "\n"; |
|||
} |
|||
|
|||
echo "===LOAD===\n"; |
|||
|
|||
spl_autoload_register("spl_autoload"); |
|||
var_dump(class_exists("TestClass", true)); |
|||
|
|||
echo "===NOFUNCTION===\n"; |
|||
|
|||
try |
|||
{ |
|||
spl_autoload_register("unavailable_autoload_function"); |
|||
} |
|||
catch(Exception $e) |
|||
{ |
|||
echo 'Exception: ' . $e->getMessage() . "\n"; |
|||
} |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
===EMPTY=== |
|||
%stestclass.inc |
|||
Exception: Class TestClass could not be loaded |
|||
===()=== |
|||
Exception: Class TestClass could not be loaded |
|||
===(1)=== |
|||
Exception: Class TestClass could not be loaded |
|||
===(.inc,,.php.inc)=== |
|||
%stestclass |
|||
%stestclass.php.inc |
|||
Exception: Class TestClass could not be loaded |
|||
===()=== |
|||
Exception: Class TestClass could not be loaded |
|||
Exception: Class TestClass could not be loaded |
|||
===SPL_AUTOLOAD()=== |
|||
Exception: Class TestClass could not be loaded |
|||
===REGISTER=== |
|||
TestFunc1(TestClass) |
|||
TestFunc2(TestClass) |
|||
bool(false) |
|||
===LOAD=== |
|||
TestFunc1(TestClass) |
|||
TestFunc2(TestClass) |
|||
%stestclass.class.inc |
|||
bool(true) |
|||
===NOFUNCTION=== |
|||
Exception: Function 'unavailable_autoload_function' not found |
|||
===DONE=== |
|||
@ -0,0 +1,5 @@ |
|||
<?php |
|||
|
|||
echo __FILE__ . "\n"; |
|||
|
|||
?> |
|||
@ -0,0 +1,9 @@ |
|||
<?php |
|||
|
|||
echo __FILE__ . "\n"; |
|||
|
|||
class TestClass |
|||
{ |
|||
} |
|||
|
|||
?> |
|||
@ -0,0 +1,5 @@ |
|||
<?php |
|||
|
|||
echo __FILE__ . "\n"; |
|||
|
|||
?> |
|||
@ -0,0 +1,5 @@ |
|||
<?php |
|||
|
|||
echo __FILE__ . "\n"; |
|||
|
|||
?> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue