2010-04-24 13 views
0

Je suis en train de développer une application personnalisée en utilisant l'infrastructure IP.Board, qui est en PHP, qui crée par défaut un objet IPSMember pour l'utilisateur connecté. Cependant, je développe une classe supplémentaire, essentiellementTransférer un objet de parent à enfant

class SpecialUser extends IPSMember 

Y at-il un moyen d'obtenir l'objet parent, qui est IPSMember changer à SpecialUser?

Répondre

0

Je ne suis pas certain, mais je ne crois pas qu'il existe un moyen de changer le type d'objet en interne. Au moins, j'ai été incapable d'avoir un objet __construct() retournant un objet d'une classe différente. La méthode la plus simple serait, peut-être, de créer une méthode d'initialisation statique dans SpecialUser qui accepte un objet IPSMember et traduit les propriétés, en retournant un objet SpecialUser.

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

La méthode getproperties de la classe de réflexion peut vous permettre de le faire rapidement. http://php.net/manual/en/reflectionclass.getproperties.php

J'espère que quelqu'un peut vous offrir une solution plus rapide. Bonne chance.