PHP中的依赖注入框架

2022-08-30 23:21:37

PHP中是否有任何类似Guice或类似的依赖注入框架?如果没有,PHP中是否有任何好的依赖注入框架?

我必须在PHP中实现与在Java中实现的相同的代码,并且在我的Java项目中使用Guice。因此,如果它使用类似的框架,实现PHP版本会更容易。


答案 1

(发布我的评论作为回应)

看看我的Guice克隆体,名为Sharbat(意思是果汁)。该API与Guice的完全相同。

它几乎有你需要的一切:

  • 构造函数注入(不需要@Inject注释)
  • 现场注入(无论能见度如何,使用@Inject(FooBar))
  • 方法注入(无论可见性如何,都需要@Inject注释)
  • 提供者注入(用于通过@InjectProvider(T=FooBar)的字段),用于通过@Provider的方法(T=FooBar,param=fooBarProvider)
  • 作用域(可实现自定义作用域)
  • AOP(方法拦截器)
  • 循环依赖关系

有关用法示例,请参阅自述文件。


答案 2

我喜欢轻巧的Aura.Di。链接的 github 项目页面中的自述文件为您提供了足够的信息,以便在几分钟内开始使用。不过,这取决于5.3。

我不认为Guice对注释的使用可以在运行时在PHP中实现而不会对性能产生非常大的影响,如果这是您的主要请求。


推荐