kodcube / dependency-injection
此包最新版本(0.1.2)没有可用的许可信息。
依赖注入容器
0.1.2
2016-07-19 09:48 UTC
Requires
- php: >=7.0.0
- container-interop/container-interop: ~1.0
- psr/log: ~1.0
Requires (Dev)
- phpunit/phpunit: ~4.5
This package is not auto-updated.
Last update: 2024-09-14 18:47:45 UTC
README
此包是递归依赖注入容器(DiC)/服务定位器/对象构建器
它被设计为将其依赖配置映射作为其构建的一部分,因此而不是在运行时设置所有依赖项,它们可以从配置文件或文件中加载。
因此,只要你能创建一个数组,配置就会在构建时注入。
主要功能
- 根据类名或别名构建服务/对象/类
- 构建需要其他依赖项的类/对象
- 缓存构建的服务/对象/类,以便在其他类(例如数据库连接)中重复使用
- 结合传递和必需依赖项构建对象/类
- 递归对象创建
限制
- 不向除了 __constructor 之外的任何方法注入依赖项
- 不向设置器注入依赖项
需求
使用方法
创建容器
$di = new KodCube\DependencyInjection\Container(); or $di = new KodCube\DependencyInjection\Container($config); or $di = new KodCube\DependencyInjection\Container([ 'MyAlias' => 'Vendor\Package\Class', 'Vendor\Package\Interface' => 'Vendor\Package\Class' ])
使用别名从容器获取对象
使用别名
$object = $di->get('MyAlias'); or $object = $di('MyAlias'); or $object = $di->MyAlias();
使用类名
$object = $di->get('Vendor\Package\Class'); or $object = $di('Vendor\Package\Class');
使用接口名称(需要依赖映射)
$object = $di->get('Vendor\Package\Interface'); or $object = $di('Vendor\Package\Interface');
检查别名\类是否存在于容器中
Alias $object = $di->has('MyAlias'); Class $object = $di->has('Vendor\Package\Class');
创建对象
使用 DiC 并传递参数创建对象。
这还将利用容器的自动装配属性。
注意:带有附加参数创建的对象不会被容器缓存。
$object = $di->make('Vendor\Package\Class','argument1','argument2');