如何将参数传递给依赖注入容器?

时间:2014-08-21 08:52:25

标签: php symfony dependency-injection dependencies

我有一个名为GeneralReport的类,实现HttpAccessibleDataGathererInterface,带有一个构造函数和一个名为calculate()的方法,它构建一个普通PHP对象数组,包含报告的字段。 GeneralReport接受两个构造函数参数:一个是参数数组,其中包含用于构造查询的输入。第二个参数是另一个类GeneralReportQueryBuilder,用于根据第一个参数构建报表查询。

现在,我希望第二个参数始终被注入(I.E. GeneralReportQueryBuilder)。但是,我想以某种方式能够将第一个参数传递给我的控制器中的GeneralReport类。请记住,GeneralReport类实现了一个接口,因此将数组作为参数传递给calculate()方法不是一种选择。此外,由于在没有输入数组的情况下调用此类将毫无意义,因此它不是可选的依赖项,并且为它创建一个setter是没有意义的。

我想使用其构造函数使GeneralReport的依赖关系变得清晰简洁,并且不希望DIC妨碍它。

1 个答案:

答案 0 :(得分:0)

之间有区别:

  • 创建不带X参数的实例
  • 使用不带X参数的实例

第一个断言由构造函数参数解决,第二个断言在执行期间抛出异常,参数未填充或有效! 上下文参数可以由setter发送!