mdagostino / dependencyresolver
通用依赖解析器。返回一个扁平数组,以尊重其依赖关系来加载组件。
1.0.0
2014-10-22 22:07 UTC
This package is not auto-updated.
Last update: 2024-09-25 12:57:59 UTC
README
此包允许定义一组依赖其他组件的通用组件。然后依赖解析器将定义这些组件的加载顺序。
基本用法
use mdagostino\DependencyResolver\DependencyResolver; $resolver = new DependencyResolver(); $resolver ->component('ITEM 1')->requires('ITEM 3', 'ITEM 4') // Item 1 requires item 3 and 4. ->component('ITEM 2')->requires('ITEM 1') // Item 2 requires item 1. ->component('ITEM 3') // Item 3 doesn't have dependencies. ->component('ITEM 4'); // Item 4 doesn't have dependencies. $ordered = $resolver->resolveDependencies(); print_r($ordered); // Prints: // ITEM 3 // ITEM 4 // ITEM 1 // ITEM 2
功能。
循环依赖检测。
示例
use mdagostino\DependencyResolver\DependencyResolver; $resolver = new DependencyResolver(); $resolver ->component('A')->requires('B') ->component('B')->requires('A'); $ordered = $resolver->resolveDependencies(); // Trow Exception: "Circular dependency detected"
检查是否已定义所有组件。
示例
use mdagostino\DependencyResolver\DependencyResolver; $resolver = new DependencyResolver(); $resolver ->component('A')->requires('B', 'C') ->component('B'); $ordered = $resolver->resolveDependencies(); // Trow Exception: "There is a component not defined: C"