我被困在 PHP 4 服务器上,我想开始将旧的遗留项目迁移到现代设计模式,包括依赖注入。是否有适用于 PHP 4 的依赖注入框架?
3 回答
大多数依赖注入框架使用反射来确定依赖关系。由于 PHP4 没有类型提示,因此您不能真正做到这一点。已经使用配置文件进行了实验 - 有时嵌入在代码中的注释中(通常称为注释)。虽然这可行,但我发现它有点笨拙。在我看来,最好使用 PHP 的动态特性来发挥自己的优势,而不是尝试对其应用静态类型的解决方案。您可以通过手工制作的工厂走得很远。例如,请参阅这篇关于如何的帖子。
我找到了这个(滴滴),但看起来它已经几年没有更新了。
我认为依赖注入框架不会真正适用于 PHP,因为它采用了面向对象程序的结构方式。首先,它不像 C# 或 Java,其中二进制文件已经存在,您只需要找到一种方法来实例化该对象并将其注入另一个对象。PHP 必须先加载类文件并解释它们,然后才能使用它们。因此,如果您使用 PHP 有很深的继承层次结构,我认为这不是一个好主意。
鉴于 PHP 是一种脚本语言,最好将其作为一种脚本语言加以利用。这意味着,我只会使用简单的工厂或构建器方法来做类似于依赖注入的事情。我不会使用 DI 框架来负担它,该框架只会添加 PHP 运行时必须为每个 Web 请求处理的内容(除非您进行操作码缓存,但仍然会有 Java 和 .网)。如果我必须更改将注入对象的对象或它们的创建方式,只需编辑包含工厂/构建器方法的脚本就很简单了。无论如何都不需要在那里重新编译。所以我有灵活性,我有一个适合 PHP 做事方式的轻量级架构。