是否有PHP4的依赖注入框架?

时间:2008-09-25 03:48:05

标签: php dependency-injection design-patterns php4

我被困在PHP 4服务器上,我想开始将旧的遗留项目转移到现代设计模式,包括依赖注入。是否有任何依赖注入框架可以与PHP 4一起使用?

3 个答案:

答案 0 :(得分:2)

大多数依赖注入框架使用反射来确定依赖关系。由于PHP4没有typehints,你不能真正做到这一点。使用配置文件进行了实验 - 有时在代码中的注释中嵌入(通常称为注释)。虽然这有效,但我发现它有点笨重。在我看来,你最好使用PHP的动态特性来获得优势,而不是尝试使用静态类型的解决方案。您可以通过手工制作的工厂获得很长的路要走。请参阅示例this post on how

答案 1 :(得分:1)

我找到了this(滴水),但看起来好像几年后没有更新。

答案 2 :(得分:0)

由于面向对象程序的结构方式,我认为依赖注入框架不会真正适用于PHP。首先,它不像C#或Java,其中二进制文件已经存在,你只需要找到一种实例化这个对象并将其注入另一个对象的方法。 PHP必须加载类文件并在它们使用之前解释它们。因此,如果您使用PHP具有深层继承层次结构,我认为这不是一个好主意。

鉴于PHP是一种脚本语言,最好将其用作脚本语言。这意味着,我只会使用简单的工厂或构建器方法来执行类似于依赖注入的操作。我不会用一个DI框架加载它,它只会增加PHP运行时必须为每个Web请求处理的东西(除非你进行操作码缓存,但是仍然存在开销,而不是由Java和Java的Web平台引起的。净)。如果我必须更改将注入对象的对象或如何创建它们,那么编辑包含工厂/构建器方法的脚本将是一项简单的任务。无论如何都不需要重新编译。所以我有灵活性,我有一个轻量级的架构,适合PHP的做事方式。