Полностью клонировать объект

Статус
В этой теме нельзя размещать новые ответы.

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
Возникла необходимость клонировать (Хочу уйти от этого, но пока не могу придумать как) пользовательский класс. Пользовательский- в смысле написанный не обязательно разработчиком, а пользователем АПИ, который может включать какие то классы.
При клонировании пхп копирует только родительский класс, а все вложенные например $this->class->var $this->class->class2->var нет. Заплатка от php.net
PHP:
    function __clone() {
        foreach($this as $name => $value) {
            if(gettype($value)=='object') {
                $this->$name= clone($this->$name);
            }
        }
    }
может помочь, но если вложенность классов 2 и более, заплатку нужно изменять. Плюс к этому некоторые классы могут хранить объекты в массивах var $this->class[2]->class2->var. А если начать обходить все переменные вложенного класса, как мне кажется, на это может уйти слишком много памяти.:confused:
Есть идеи?
 
я уже искал решение данной проблемы в итоге отказался от клонирования в целом, так как и искал решение перезагрузки обьектов, перезагрузку решал своей функцией сброса все по дефолту....
--
еще как вариант поискать решение во вреймворках
 
Как вариант можно попробывать serialize() -> unserialize() правда некоторые классы могут при сериализации реализовывать интерфейсы __sleep __wakeup и делать там ненужные вещи :)

но сразу говорю - подобное клонирование - это плохая затея ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху