paritybit / dependency-resolver
一个用于解析依赖的简单组件
v1.0.0
2016-05-13 16:11 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
- satooshi/php-coveralls: 1.0.1
This package is not auto-updated.
Last update: 2024-09-14 19:31:06 UTC
README
一个简单的框架,用于在代码中解析依赖,并管理配置映射,以确定特定依赖的解析方式。
这并不理想,可能还有更好的实现方式,但我需要为几个特定且暂时的用例尽快找到一个解决方案。因此,它可能对一般用途不太有用。
安装
使用 composer
php composer.phar require paritybit/dependency-resolver
使用方法
有一个示例 Resolution
实现 CallableResolution
。一个 Resolution
是特定依赖的封装。如果你的一个依赖项是一个对象,那么你需要告诉 Resolution
如何创建或获取这个对象,以便在它被依赖时提供。在大多数情况下,你可能会想要创建自己的 Resolution
实现。我的用例是从容器中获取一个对象,直到容器可以被重构。
创建你的依赖映射
use ParityBit\DependencyResolver\DependencyMap;
use ParityBit\DependencyResolver\DependencyConfigurations\CallableResolution;
use My\Applications\Dependency;
$map = new DependencyMap();
$map->registerResolution(
Dependency::class,
new CallableResolution(function () {
return new Dependency();
})
);
实例化适当的解析器
$resolver = new ParityBit\DependencyResolver\ConstructorArgumentResolver($map);
解析你的依赖
use Class\With\Dependencies\In\Constructor as ToResolve;
// find dependencies, instantiate dependent object and inject dependencies
$resolved = $resolver->resolve(ToResolve::class);