19 declare(strict_types=1);
28 private readonly array
$map;
37 $lens = fn($consumer) => $consumer->uses($create_wiring($consumer->id()),
new LazyProvide(fn() => $create_provide($consumer->id())));
38 $this->map = array_reduce(
39 $consumer_classes ?? require self::path(),
40 fn($map, $consumer) => $map->append($lens(
new $consumer())->map()),
45 public function all(
string $name): array
47 return $this->map[$name] ?? [];
50 public function get(
string $name,
string $key)
52 return $this->map[$name][
$key] ?? null;
55 public static function path(): string
57 return 'Services/LegalDocuments/artifacts/consumers.php';
__construct(Closure $create_provide, Closure $create_wiring, ?array $consumer_classes=null)