胶囊/依赖注入

符合PSR-11规范的自动装配依赖注入容器。

4.0.0 2023-09-26 13:56 UTC

This package is auto-updated.

Last update: 2024-08-26 18:21:03 UTC


README

Capsule是一个符合PSR-11 (2.0)规范的自动装配依赖注入容器,具有面向对象配置构造函数参数和初始化方法,以及从各种来源懒加载参数解析。主要针对对象条目,Capsule还允许存储值条目。

Capsule的完整文档可在http://capsulephp.com找到。

Capsule支持的功能

Capsule提供以下功能

  • 通过自动装配创建、修改、保留和返回对象和值;
  • 配置和定义创建、修改和保留逻辑;
  • 将这些对象和值注入其依赖对象中;
  • 在实例化时懒解析值和对象。

Capsule不支持的功能

Capsule不提供以下功能

  • 注解和属性。 注解和属性倾向于将服务绑定到特定的容器实现;我认为在原则上应避免这种绑定。

  • 缓存和编译。 这些是名义上的性能提升器,但根据我的经验,它们很少是必要的,而且在那些罕见的情况下,可获得的速度提升与其他优化机会(例如数据库查询)相比微乎其微。

  • 基于文件的配置。 Capsule配置完全通过面向对象的PHP代码定义,而不是通过Neon/YAML/XML文件或PHP数组。(作为推论,没有特殊的配置符号需要学习,只有类方法。)

  • 在运行时修改容器。 这意味着一旦Capsule容器实例化,就无法设置或重置新的对象或值定义。(有方法可以规避此限制,在这种情况下,你将得到你应得的。)

  • 调用注入。 也称为方法调用注入或动作注入,我认为这个功能超出了DI/IOC系统的范畴。

  • 标签。 我对标签持中立态度;虽然我认为它略超出DI/IOC系统的范畴,但我可以看到其他人可能觉得它有用。也许Capsule的未来版本可能会包含它。

这些缺失的功能可能是一些开发者的决定性因素,在这种情况下,他们可以从数百个自动装配和非自动装配的DI/IOC系统中进行选择,包括...

...以及其他DIIOC包。