Передача объекта от родителя к ребенку - PullRequest
0 голосов
/ 24 апреля 2010

В настоящее время я занимаюсь разработкой пользовательского приложения с использованием инфраструктуры IP.Board на языке PHP, которая по умолчанию создает объект IPSMember для вошедшего в систему пользователя. Тем не менее, я разрабатываю дополнительный класс, в основном

class SpecialUser extends IPSMember

Есть ли способ получить родительский объект, который IPSMember можно изменить на SpecialUser?

1 Ответ

0 голосов
/ 25 апреля 2010

Я не уверен, но я не верю, что есть способ изменить тип объекта внутренне. По крайней мере, мне не удалось заставить __construct () вернуть объект другого класса.

Возможно, проще всего было бы создать метод статического инициализатора в SpecialUser, который принимает объект IPSMember и переводит свойства, возвращая объект SpecialUser.

class SpecialUser extends IPSMember
{
    public static function initWithIPSMember (IPSMember $ipsMember)
    {
        $specialUserObj = new SpecialUser();
        // translate any properties     
        return $specialUserObj;
    }
}

Метод getproperties класса Reflection может помочь вам сделать это быстро. http://php.net/manual/en/reflectionclass.getproperties.php

Надеюсь, кто-то может предложить вам более быстрое решение. Удачи.

...