*/ private array $flags = []; /** * @param array}> $config */ public static function fromArray(array $config): self { $items = []; foreach ($config as $name => $def) { $items[$name] = new Flag( name: (string)$name, enabled: $def['enabled'] ?? null, rolloutPercentage: $def['rolloutPercentage'] ?? null, allowList: $def['allowList'] ?? [] ); } return new self($items); } /** * @param array $flags */ public function __construct(array $flags = []) { $this->flags = $flags; } public function get(string $name): ?Flag { return $this->flags[$name] ?? null; } /** * @return iterable */ public function all(): iterable { return $this->flags; } }