将对象传递给PHP中的另一个对象构造函数

时间:2017-09-19 15:25:54

标签: php design-patterns

我正在阅读PHP中的设计模式,我一直看到以下语法,例如

$newClass = new myClass(new myOtherClass());

我想这会在myOtherClass内传递某种myClass引用,所以这里

class myClass{

    private $myOtherClass;

    public function __construct(myOtherClass $myOtherClass) {
        $this->myOtherClass= $myOtherClass;
    }

    public function myClassMethod($var) {
        $this->myOtherClass->methodOfMyOtherClass($var);
    }
}

构造指的是myOtherClass和 我可以使用methodOfMyOtherClass myOtherClass中的myClass myClassMethod$newClass->myClassMethod('a value here');

我的问题是:

这种做法的名称是什么?

我的概念是否正确?

我在哪里可以阅读更多相关信息?

(我第一次看到这个语法是here,这也是我根据这个问题编写代码的地方)

1 个答案:

答案 0 :(得分:1)

这种做法的名称是什么?
通常这称为Dependency InjectionmyClass需要myOtherClass才能正确执行其方法,因此myOtherClassmyClass的依赖关系。阅读更多here

我的概念是否合适?
看起来你的概念是正确的。至少根据您的样本,您正确使用它。

我在哪里可以阅读更多相关信息? 如果您想了解更多关于依赖注入的信息,我建议this。一般来说,12 Factor App教授的原则非常好,值得一读。 12 Factor App

一些值得阅读的好书如下:
Clean Code
Patterns for Enterprise Architecture