RelationCollector.php 827 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of Hyperf.
  5. *
  6. * @link https://www.hyperf.io
  7. * @document https://hyperf.wiki
  8. * @contact group@hyperf.io
  9. * @license https://github.com/hyperf/hyperf/blob/master/LICENSE
  10. */
  11. namespace Hyperf\Di\Annotation;
  12. /**
  13. * This collector is used to collect the relation of parent class and sub-class, also include the trait and sub-class.
  14. */
  15. class RelationCollector
  16. {
  17. public static array $container = [];
  18. public static function addRelation(string $key, string $className): void
  19. {
  20. static::$container[$key][] = $className;
  21. }
  22. public static function getRelation(string $key): array
  23. {
  24. return static::getContainer()[$key] ?? [];
  25. }
  26. public static function getContainer(): array
  27. {
  28. return static::$container;
  29. }
  30. }