Нам захотелось юзать множественное наследование (ну или еще какуюнить хуергу), а этого само собой в пыхе нету.
Теоретическое решение проблемы:
1 - меняем логику аутолода
было
function loadClass($className)
{
$file = 'Directory/Class/' . str_replace(array('\\', '_'), '/', $className) . '.php';
if(file_exists($file))
{
require_once $file;
}
}
стало
function loadClass($className)
{
$file = 'Directory/Class/'. str_replace(array('\\', '_'), '/', $className) . '.php';
$cache= 'Directory/Cache/'. str_replace(array('\\', '_'), '/', $className) . '.php';
if(!file_exists($cache) || filemtime($cache) < filemtime($file))
{
$compiler = new PCompiler();
$compiler->readFile($file)->applyExtension(array('utf8String', 'typeHint', 'classMultiExtends'))->getNewCode();
file_put_content($cache, $compiler);
}
require_once $cache;
}
2 - умираем и реализуем PCompiler и его расширения.
3 - радуемся жизни и добавляем разные плюшки по мере надобности
На первый взгляд кажется что это будет удобно. (я просто мечтаю переебенить большинство нативных функций, хотя это наверно самое бесполезное что можно сделать).
В общем кто что думает по этому поводу. Есть ли смысл с этим замарачиватся? Вы бы сами стали юзать подобное?