如何处理这种多重继承?

时间:2011-11-28 03:28:39

标签: php class design-patterns multiple-inheritance

我目前正致力于使用RedBean作为我的ORM层的基于MVC的项目(无框架)。通过扩展RedBean_SimpleModel类:

,RedBean允许我create models
MyModel extends RedBean_SimpleModel{

}

问题是我也使用依赖注入。有一个名为AContainer的特殊抽象类,希望访问DI容器的类可以扩展。这允许依赖注入框架在创建对象期间通过方法将DI容器的副本注入到该类中。然后,可以使用$this->get('classname');从DI容器中获取内容。

在这种情况下,我需要我的模型来扩展RedBean_SimpleModelAContainer。但我们都知道多重遗产充满了problems

除了复制RedBean_SimpleModel并将其称为CModel,然后将其修改为扩展AContainer,如下所示,是否有任何模式或方法可以解决此问题?< / p>

class CModel extends AContainer{
  //copy all the methods from RedBean_SimpleModel and paste it here.
}

1 个答案:

答案 0 :(得分:0)

恕我直言,您不需要使用RedBeanPHP模型进行依赖注入。如果您愿意,可以从RedBean_Facade中使用它。

RedBeanPHP模型即时附加到bean,因此它们已经解耦。 bean和RedBeanPHP模型之间没有依赖关系。您可以单独测试您的模型。