Класс 1 + класс 2 = класс 3

StalkerClasses

Новичок
только для тебя, от души оторвал
PHP:
spl_autoload_register(function ($class_name) {
    $file = "/tmp/".$class_name.".php";
    $trait = $class_name."Helper";
    if(trait_exists($trait)){
        if(!file_exists($file)){
            file_put_contents(
                $file,
                "<"."?php class ".$class_name." extends helperBase { use ".$trait."; }"
            );
        }
      
        include $file;
    }
});

class helperBase{}

trait myHelper{
    public static function foo(){
        print get_class().' / ' .get_called_class().'<br />';
    }
}

my::foo();
echo get_parent_class('my');
Заработало - то что надо с @spl_autoload_register
 

StalkerClasses

Новичок

grigori

( ͡° ͜ʖ ͡°)
Команда форума
много где используется прототипирование - например, maker bundle,
а генерация кода во временных файлах противоречит оптимизациям в php, и не должно использоваться как рабочее решение,
ни в каких распространенных или промышленных решениях так не делают
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да, компиляция в кеш используется много где, но скомпилированные сущности не используются в логике приложения
 

Yoskaldyr

"Спамер"
Партнер клуба
Ну есть еще кеш, если используется всякая черная магия типа go-aop
 

WMix

герр M:)ller
Партнер клуба
но скомпилированные сущности не используются в логике приложения
в смысле сущность наследуемая от сгенеренного
всякая черная магия типа go-aop
composer генерит autoload, doctrine кеш на reflection
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Есть ещё моки для тестов. Но эта генерация, которая логична и нужна. А ТС на ровном месте соорудил кривой и опасный костыль.
 
Сверху