*/ private array $tenantRules = []; /** @var FirewallRuleObject[]|null */ private ?array $systemRules = null; public function __construct(private readonly FirewallStore $store) { } /** @return FirewallRuleObject[] */ public function tenant(string $tenantId): array { return $this->tenantRules[$tenantId] ??= $this->store->listRules($tenantId); } /** @return FirewallRuleObject[] */ public function system(): array { return $this->systemRules ??= $this->store->listSystemRules(); } public function invalidate(): void { $this->tenantRules = []; $this->systemRules = null; } }