- spl_autoload_register: documentation ( source)
- var_dump: documentation ( source)
- class_alias: documentation ( source)
- strtolower: documentation ( source)
<?php
$alias_list = [];
$alias_autoloader = function($class_name) use (&$alias_list) {
if (isset($alias_list[strtolower($class_name)])) {
class_alias($alias_list[strtolower($class_name)], $class_name);
return true;
}
};
$alias = function($from, $to) use (&$alias_list) {
$alias_list[strtolower($to)] = $from;
};
spl_autoload_register($alias_autoloader);
class Foo
{
}
$alias('Foo', 'Bar');
$alias('Foo', 'BarCollision');
$b = new Bar;
$c = new BarCollision;
var_dump($b->test(), $c->test());