使用PHP的内置类时的依赖注入

时间:2013-01-25 03:42:13

标签: php oop design-patterns

所以我知道依赖注入的基础知识。我应该将我的依赖项作为方法参数传递,而不是在方法中实例化对象本身。

我想知道这是否也适用于PHP附带的类,例如DateTime对象或ReflectionClass对象?

例如,我正在处理的类的一个方法需要知道传入的对象的属性。我想使用ReflectionClass来完成任务,但我认为似乎没有必要将一个ReflectionClass对象作为参数传递,如果该类始终可访问且相对不变(除非ReflectionClass随更新的PHP版本而更改)。

1 个答案:

答案 0 :(得分:0)

这取决于您的应用程序的设计要求。

如果您知道您的应用程序需要DateTime以使特定方法起作用,那么请传入DateTime。如果您需要围绕DateTime定制功能,请考虑对DateTime进行子类化并发送。

如果您决定在方法签名中使用PHP的类型提示,请考虑使用接口,以便发送的任何对象都将履行与接收类的合同。这种方法还可以帮助您的应用程序在将来免受PHP中不兼容的更改。