diff options
Diffstat (limited to 'ext/spl/examples/autoload.inc')
-rw-r--r-- | ext/spl/examples/autoload.inc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ext/spl/examples/autoload.inc b/ext/spl/examples/autoload.inc new file mode 100644 index 0000000..5871e7d --- /dev/null +++ b/ext/spl/examples/autoload.inc @@ -0,0 +1,50 @@ +<?php + +/** @file autoload.inc + * @ingroup Examples + * @brief function __autoload + * @author Marcus Boerger + * @date 2003 - 2005 + * + * SPL - Standard PHP Library + */ + +/** \internal + * Tries to load class $classname from directory $dir. + */ +function __load_class($classname, $dir) +{ + $file = $dir . '/' . $classname . '.inc'; + if (file_exists($file)) + { + require_once($file); + return true; + } + return false; +} + +/** + * @brief Class loader for SPL example classes + * @author Marcus Boerger + * @version 1.0 + * + * Loads classes automatically from include_path as given by ini or from + * current directory of script or include file. + */ +function __autoload($classname) { + $classname = strtolower($classname); + $inc = split(':', ini_get('include_path')); + $inc[] = '.'; + $inc[] = dirname($_SERVER['PATH_TRANSLATED']); + foreach($inc as $dir) + { + if (__load_class($classname, $dir)) + { + fprintf(STDERR, 'Loading class('.$classname.")\n"); + return; + } + } + fprintf(STDERR, 'Class not found ('.$classname.")\n"); +} + +?>
\ No newline at end of file |