询问关于多重继承的意见

时间:2014-07-24 03:34:44

标签: php class object inheritance

我的导师说,

我目前的developing project始终需要session object Bulletin controllerUser controller始终需要session object 这意味着,对于您当前的Super(Parent) Class,它最好developing project "Super Class"并不意味着Controller_Base已经存在。

好吧,PHPJava不能像"Multiple inheritance"那样做。

------------------------------
class Controller_Bulletin extends Controller_Base, Controller_Application
------------------------------

会发生错误。

如果你是我,你认为你必须做什么? 我很困惑,需要一些建议。

1 个答案:

答案 0 :(得分:0)

您可以使用更强大的依赖注入形式来实现这一点,而不是多重继承(这在PHP中是不可能的)。

在初始化期间,只需为需要它的每个类提供Session对象的特定实例。

class MyClass {

    protected $session;

    public function __construct($stuff) { ... }

    public function setSession($session) {
        $this->session = $session;
    }

}

$myObject = new MyClass();
$myObject->setSession($session);
$myObject->doSomeStuff();

试图解决PHP中多重继承问题的另一种方法是Traits。 您可以使用这些功能向多个类添加一些功能。在我看来,依赖注入是一种更好的方法。

http://php.net/manual/en/language.oop5.traits.php