我目前正致力于使用RedBean作为我的ORM层的基于MVC的项目(无框架)。通过扩展RedBean_SimpleModel
类:
MyModel extends RedBean_SimpleModel{
}
问题是我也使用依赖注入。有一个名为AContainer
的特殊抽象类,希望访问DI容器的类可以扩展。这允许依赖注入框架在创建对象期间通过方法将DI容器的副本注入到该类中。然后,可以使用$this->get('classname');
从DI容器中获取内容。
在这种情况下,我需要我的模型来扩展RedBean_SimpleModel
和AContainer
。但我们都知道多重遗产充满了problems。
除了复制RedBean_SimpleModel
并将其称为CModel
,然后将其修改为扩展AContainer
,如下所示,是否有任何模式或方法可以解决此问题?< / p>
class CModel extends AContainer{
//copy all the methods from RedBean_SimpleModel and paste it here.
}
答案 0 :(得分:0)
恕我直言,您不需要使用RedBeanPHP模型进行依赖注入。如果您愿意,可以从RedBean_Facade中使用它。
RedBeanPHP模型即时附加到bean,因此它们已经解耦。 bean和RedBeanPHP模型之间没有依赖关系。您可以单独测试您的模型。