- spl_autoload_register: documentation ( source)
- array_merge: documentation ( source)
- array_change_key_case: documentation ( source)
- strtolower: documentation ( source)
<?php
class ClassmapAutoloader
{
protected $classmap;
public function __construct($classmap)
{
$this->classmap = array_change_key_case($classmap);
spl_autoload_register('self::loadClass');
}
public function addClassmap($classmap)
{
$this->classmap = array_merge($this->classmap, array_change_key_case($classmap));
}
protected function loadClass($class_name)
{
$class_name = strtolower($class_name);
if(isset($this->classmap[$class_name]))
include $this->classmap[$class_name];
}
}
?>