diff options
Diffstat (limited to 'ext/spl/examples/autoload.inc')
-rwxr-xr-x | ext/spl/examples/autoload.inc | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/ext/spl/examples/autoload.inc b/ext/spl/examples/autoload.inc index 34072f8e4a..430680645a 100755 --- a/ext/spl/examples/autoload.inc +++ b/ext/spl/examples/autoload.inc @@ -1,7 +1,30 @@ <?php +function __load_class($classname, $dir) +{ + $file = $dir . '/' . $classname . '.inc'; + if (file_exists($file)) + { + require_once($file); + return true; + } + return false; +} + function __autoload($classname) { - require_once(dirname($_SERVER['PATH_TRANSLATED']).'/'.strtolower($classname).'.inc'); + $classname = strtolower($classname); + foreach(split(':', ini_get('include_path')) as $dir) + { + if (__load_class($classname, $dir)) + { + fprintf(STDERR, 'Loading class('.$classname.")\n"); + return; + } + } + if (!__load_class($classname, '.')) + if (!__load_class($classname, dirname($_SERVER['PATH_TRANSLATED']))) + fprintf(STDERR, 'Class not found ('.$classname.")\n"); + return; } ?>
\ No newline at end of file |