File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / spl / examples / autoload.inc
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:01 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

<?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");
}

?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>