代码之家  ›  专栏  ›  技术社区  ›  Adam Ness

是否有针对php4的依赖注入框架?

  •  2
  • Adam Ness  · 技术社区  · 16 年前

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

    3 回复  |  直到 10 年前
        1
  •  1
  •   Owen Ryan Doherty    16 年前

    我发现 this (滴滴),但看起来几年没更新过。

        2
  •  2
  •   troelskn    16 年前

    大多数依赖注入框架使用反射来确定依赖性。由于php4没有类型提示,因此您不能真正执行此操作。已经对使用配置文件进行了实验——有时将其嵌入到代码的注释中(通常称为注释)。当这个工作的时候,我发现它有点笨重。在我看来,您最好利用PHP的动态特性,而不是尝试对其应用静态类型的解决方案。你可以在手工工厂里找到一条很长的路。参见例如 this post on how .

        3
  •  0
  •   cruizer    16 年前

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

    既然PHP是一种脚本语言,那么最好利用它——一种脚本语言。这意味着,我只需要使用简单的工厂或生成器方法来执行类似于依赖注入的操作。我不会用一个DI框架来负担它,它只会增加PHP运行时必须处理的每一个Web请求(除非你做了OpCu码缓存,但是仍然有开销不会被Java和.NET的Web平台所引起)。如果必须更改将被注入对象的对象或它们是如何创建的,那么只需编辑包含工厂/生成器方法的脚本就是一项简单的任务。不需要在那里重新编译。所以我有灵活性,我有一个轻量级的体系结构,适合于PHP的工作方式。