可以动态设置类的名称吗?

| 我有一个成功集成了单点登录的mediawiki和phpbb安装程序。 问题是他们俩都有用户类,因此在mediawiki中,当我调用phpbb时,它给出了类重新装饰错误。 我通过检查文件是否由mediawiki加载来解决此问题。如果是这样,它将调用名为phpbb_user的用户类的完整副本。但是我想知道是否有更好的方法。这是目前的工作方式
if (!defined(\'FROM_MEDIAWIKI\')){
    class User extends session{
    //user class code
    }

}else{
    class phpbb_user extends session{
    //exact copy of user class code
    }

}
有没有更好的方法可以执行此操作,而该方法不需要用户类的2个副本? 我知道您不能这样做,但是您可以做类似的事情吗?
$className = (defined(\'FROM_MEDIAWIKI\'))? \'phpbb_user\' : \'User\';

class $className extends session{
    //user class code
}
    
已邀请:
这有点麻烦,但是您可以拥有一个基类,其中定义了所有内容。然后,您只需从该类扩展空的子类,从而更改其名称,而不必保留重复的代码。
class __user extends session {
    // user class code
}

if (!defined(\'FROM_MEDIAWIKI\')){
    class User extends __user {}
}else{
    class phpbb_user extends __user {}
}
不过,我希望看到更好的解决方案。     

要回复问题请先登录注册