mako\ClassLoader


Description


Classloader.


Class methods


Toggle source

protected __construct()


Protected constructor since this is a static class.

Return value

NULL

protected function __construct()
{
	// Nothing here
}

Toggle source

public static addClass($className, $classPath)


Add class to mapping.


Parameters

Type Description
string Class name
string Full path to class
Return value

NULL

public static function addClass($className, $classPath)
{
	static::$classes[$className] = $classPath;
}

Toggle source

public static addClasses($classes)


Add multiple classes to mapping.


Parameters

Type Description
array Array of classes to map (key = class name and value = class path)
Return value

NULL

public static function addClasses(array $classes)
{
	foreach($classes as $name => $path)
	{
		static::$classes[$name] = $path;
	}
}

Toggle source

public static directory($path)


Adds a PSR-0 directory path.


Parameters

Type Description
string Path to PSR-0 directory
Return value

NULL

public static function directory($path)
{
	static::$psr[] = $path;
}

Toggle source

public static alias($alias, $className)


Set an alias for a class.


Parameters

Type Description
string Class alias
string Class name
Return value

NULL

public static function alias($alias, $className)
{
	static::$aliases[$alias] = $className;
}

Toggle source

public static load($className)


Autoloader.


Parameters

Type Description
string Class name
Return value

boolean

public static function load($className)
{
	$className = ltrim($className, '\\');

	// Try to autoload an aliased class

	if(isset(static::$aliases[$className]))
	{
		class_alias(static::$aliases[$className], $className);
	}
	
	// Try to load a mapped class

	if(isset(static::$classes[$className]) && file_exists(static::$classes[$className]))
	{
		include static::$classes[$className];

		return true;
	}

	// Try to load an application class

	$fileName = MAKO_APPLICATION_PATH . '/' . str_replace('\\', '/', strtolower($className)) . '.php';

	if(file_exists($fileName))
	{
		include $fileName;

		return true;
	}

	// Try to load class from a PSR-0 compatible library

	$fileName  = '';
	$namespace = '';

	if($lastNsPos = strripos($className, '\\'))
	{
		$namespace = substr($className, 0, $lastNsPos);
		$className = substr($className, $lastNsPos + 1);
		$fileName  = str_replace('\\', '/', $namespace) . '/';
	}

	$fileName .= str_replace('_', '/', $className) . '.php';

	foreach(static::$psr as $path)
	{
		if(file_exists($path . '/' . $fileName))
		{
			include($path . '/' . $fileName);

			return true;
		}	
	}

	return false;
}