Annotation of embedaddon/php/ext/spl/tests/spl_autoload_007.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: SPL: spl_autoload() with inaccessible methods
! 3: --INI--
! 4: include_path=.
! 5: --FILE--
! 6: <?php
! 7:
! 8: class MyAutoLoader {
! 9:
! 10: static protected function noAccess($className) {
! 11: echo __METHOD__ . "($className)\n";
! 12: }
! 13:
! 14: static function autoLoad($className) {
! 15: echo __METHOD__ . "($className)\n";
! 16: }
! 17:
! 18: function dynaLoad($className) {
! 19: echo __METHOD__ . "($className)\n";
! 20: }
! 21: }
! 22:
! 23: $obj = new MyAutoLoader;
! 24:
! 25: $funcs = array(
! 26: 'MyAutoLoader::notExist',
! 27: 'MyAutoLoader::noAccess',
! 28: 'MyAutoLoader::autoLoad',
! 29: 'MyAutoLoader::dynaLoad',
! 30: array('MyAutoLoader', 'notExist'),
! 31: array('MyAutoLoader', 'noAccess'),
! 32: array('MyAutoLoader', 'autoLoad'),
! 33: array('MyAutoLoader', 'dynaLoad'),
! 34: array($obj, 'notExist'),
! 35: array($obj, 'noAccess'),
! 36: array($obj, 'autoLoad'),
! 37: array($obj, 'dynaLoad'),
! 38: );
! 39:
! 40: foreach($funcs as $idx => $func)
! 41: {
! 42: if ($idx) echo "\n";
! 43: try
! 44: {
! 45: var_dump($func);
! 46: spl_autoload_register($func);
! 47: echo "ok\n";
! 48: }
! 49: catch (Exception $e)
! 50: {
! 51: echo $e->getMessage() . "\n";
! 52: }
! 53: }
! 54:
! 55: ?>
! 56: ===DONE===
! 57: <?php exit(0); ?>
! 58: --EXPECTF--
! 59: string(22) "MyAutoLoader::notExist"
! 60: Function 'MyAutoLoader::notExist' not found (class 'MyAutoLoader' does not have a method 'notExist')
! 61:
! 62: string(22) "MyAutoLoader::noAccess"
! 63: Function 'MyAutoLoader::noAccess' not callable (cannot access protected method MyAutoLoader::noAccess())
! 64:
! 65: string(22) "MyAutoLoader::autoLoad"
! 66: ok
! 67:
! 68: string(22) "MyAutoLoader::dynaLoad"
! 69: Function 'MyAutoLoader::dynaLoad' not callable (non-static method MyAutoLoader::dynaLoad() should not be called statically)
! 70:
! 71: array(2) {
! 72: [0]=>
! 73: string(12) "MyAutoLoader"
! 74: [1]=>
! 75: string(8) "notExist"
! 76: }
! 77: Passed array does not specify an existing static method (class 'MyAutoLoader' does not have a method 'notExist')
! 78:
! 79: array(2) {
! 80: [0]=>
! 81: string(12) "MyAutoLoader"
! 82: [1]=>
! 83: string(8) "noAccess"
! 84: }
! 85: Passed array does not specify a callable static method (cannot access protected method MyAutoLoader::noAccess())
! 86:
! 87: array(2) {
! 88: [0]=>
! 89: string(12) "MyAutoLoader"
! 90: [1]=>
! 91: string(8) "autoLoad"
! 92: }
! 93: ok
! 94:
! 95: array(2) {
! 96: [0]=>
! 97: string(12) "MyAutoLoader"
! 98: [1]=>
! 99: string(8) "dynaLoad"
! 100: }
! 101: Passed array specifies a non static method but no object (non-static method MyAutoLoader::dynaLoad() should not be called statically)
! 102:
! 103: array(2) {
! 104: [0]=>
! 105: object(MyAutoLoader)#%d (0) {
! 106: }
! 107: [1]=>
! 108: string(8) "notExist"
! 109: }
! 110: Passed array does not specify an existing method (class 'MyAutoLoader' does not have a method 'notExist')
! 111:
! 112: array(2) {
! 113: [0]=>
! 114: object(MyAutoLoader)#%d (0) {
! 115: }
! 116: [1]=>
! 117: string(8) "noAccess"
! 118: }
! 119: Passed array does not specify a callable method (cannot access protected method MyAutoLoader::noAccess())
! 120:
! 121: array(2) {
! 122: [0]=>
! 123: object(MyAutoLoader)#%d (0) {
! 124: }
! 125: [1]=>
! 126: string(8) "autoLoad"
! 127: }
! 128: ok
! 129:
! 130: array(2) {
! 131: [0]=>
! 132: object(MyAutoLoader)#%d (0) {
! 133: }
! 134: [1]=>
! 135: string(8) "dynaLoad"
! 136: }
! 137: ok
! 138: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>