我被困在PHP4服务器上,我想开始将一个旧的遗留项目迁移到现代设计模式,包括依赖注入。有没有可以和PHP4一起工作的依赖注入框架?
发布于 2008-09-25 04:03:22
我找到了this (drip),但它看起来已经有几年没有更新了。
发布于 2008-09-25 11:32:43
大多数依赖注入框架使用反射来确定依赖关系。因为PHP4没有类型提示,所以你不能这样做。已经进行了使用配置文件的实验-有时嵌入在代码的注释中(通常称为注释)。虽然这是可行的,但我觉得它有点笨拙。在我看来,最好使用PHP的动态特性,而不是尝试对其应用静态类型的解决方案。你可以用手工工厂走很长一段路。有关示例this post on how,请参阅。
发布于 2008-09-25 04:01:31
我认为依赖注入框架不会真正在PHP上工作,因为面向对象的程序在PHP中的结构方式。首先,它不像C#或Java那样,二进制文件已经存在,您只需找到一种方法来实例化这个对象并将其注入到另一个对象中。PHP必须加载类文件并解释它们,然后才能使用它们。所以,如果你在PHP中有很深的继承层次,我认为这不是一个好主意。
鉴于PHP是一种脚本语言,最好将其作为一种脚本语言来利用。这意味着,我只需要使用简单的工厂或构建器方法来做一些类似于依赖注入的事情。我不会用DI框架给它增加负担,它只会增加PHP运行时必须为每个web请求处理的东西(除非你做操作码缓存,但仍然会有一些开销,这些开销不是由Java和.NET的web平台引起的)。如果我必须更改将被注入到对象中的对象或它们的创建方式,那么编辑包含工厂/构建器方法的脚本将是一项简单的任务。无论如何,这里不需要重新编译。所以我有灵活性,我有一个轻量级的架构,适合PHP的工作方式。
https://stackoverflow.com/questions/131393
复制相似问题