项目作者: Sweetchuck

项目描述 :
Circular dependency detector
高级语言: PHP
项目地址: git://github.com/Sweetchuck/cdd.git
创建时间: 2018-11-30T22:24:22Z
项目社区:https://github.com/Sweetchuck/cdd

开源协议:

下载


Circular dependency detector

CircleCI
codecov

Install

  1. composer require sweetchuck/cdd

Usage

  1. <?php
  2. declare(strict_types = 1);
  3. use Sweetchuck\cdd\CircularDependencyDetector;
  4. $detector = new CircularDependencyDetector();
  5. $items = [
  6. // Item "a" has no any dependencies.
  7. 'a' => [],
  8. // Item "b" depends on "c" and "d".
  9. 'b' => ['c', 'd'],
  10. // Item "c" has no any dependencies.
  11. 'c' => [],
  12. // Item "d" has no any dependencies.
  13. 'd' => [],
  14. ];
  15. $loops = $detector->detect($items);
  16. /**
  17. * $loops = [];
  18. */
  19. var_dump($loops);
  20. $items = [
  21. // Item "a" depends on "b".
  22. 'a' => ['b'],
  23. // Item "b" depends on "a".
  24. 'b' => ['a'],
  25. ];
  26. $loops = $detector->detect($items);
  27. /**
  28. * $loops = [
  29. * 'a|b' => ['b', 'a', 'b'],
  30. * ];
  31. */
  32. var_dump($loops);
  33. $items = [
  34. // Item "a" depends on "b".
  35. 'a' => ['b'],
  36. // Item "b" depends on "c".
  37. 'b' => ['c'],
  38. // Item "c" depends on "a".
  39. 'c' => ['a'],
  40. ];
  41. $loops = $detector->detect($items);
  42. /**
  43. * $loops = [
  44. * 'a|b|c' => ['c', 'a', 'b', 'c'],
  45. * ];
  46. */
  47. var_dump($loops);