- spl_autoload_register: documentation ( source)
- class_alias: documentation ( source)
<?php
class AliasesLoader
{
private $aliases = array();
/**
* @param array $aliases
*/
public function __construct($aliases)
{
$this->setAliases($aliases);
}
public function register()
{
spl_autoload_register(array($this, 'load'));
}
public function load($class)
{
if ($this->hasAlias($class)) {
class_alias($class, $this->getAlias($class));
}
}
protected function getAlias($class)
{
return $this->aliases[$class];
}
protected function hasAlias($class)
{
return isset($this->aliases[$class]);
}
private function setAliases(array $aliases)
{
$this->aliases = $aliases;
}
}
$a = new AliasesLoader(array('B' => 'A'));
$a->register();
spl_autoload_register(function ($c) { eval('class '.$c.' {}'); });
new B();