胶囊 / 依赖注入
符合PSR-11规范的自动装配依赖注入容器。
4.0.0
2023-09-26 13:56 UTC
Requires
- php: ^8.1
- psr/container: ^2.0
Requires (Dev)
- pds/composer-script-names: ^1.0
- pds/skeleton: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^10.0
- pmjones/php-styler: 0.x-dev
Provides
- psr/container-implementation: 1.0.0
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系统中进行选择,包括...