我有一个名为GeneralReport
的类,实现HttpAccessibleDataGathererInterface
,带有一个构造函数和一个名为calculate()
的方法,它构建一个普通PHP对象数组,包含报告的字段。 GeneralReport
接受两个构造函数参数:一个是参数数组,其中包含用于构造查询的输入。第二个参数是另一个类GeneralReportQueryBuilder
,用于根据第一个参数构建报表查询。
现在,我希望第二个参数始终被注入(I.E. GeneralReportQueryBuilder
)。但是,我想以某种方式能够将第一个参数传递给我的控制器中的GeneralReport
类。请记住,GeneralReport
类实现了一个接口,因此将数组作为参数传递给calculate()
方法不是一种选择。此外,由于在没有输入数组的情况下调用此类将毫无意义,因此它不是可选的依赖项,并且为它创建一个setter是没有意义的。
我想使用其构造函数使GeneralReport
的依赖关系变得清晰简洁,并且不希望DIC妨碍它。
答案 0 :(得分:0)
之间有区别:
第一个断言由构造函数参数解决,第二个断言在执行期间抛出异常,参数未填充或有效! 上下文参数可以由setter发送!