summaryrefslogtreecommitdiff
path: root/ext/spl/examples/autoload.inc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/examples/autoload.inc')
-rwxr-xr-xext/spl/examples/autoload.inc25
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