paritybit/dependency-resolver

一个用于解析依赖的简单组件

v1.0.0 2016-05-13 16:11 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:31:06 UTC


README

Coverage Status Build Status

一个简单的框架,用于在代码中解析依赖,并管理配置映射,以确定特定依赖的解析方式。

这并不理想,可能还有更好的实现方式,但我需要为几个特定且暂时的用例尽快找到一个解决方案。因此,它可能对一般用途不太有用。

安装

使用 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);