key = $key; $this->name = $name; $this->description = $description; $this->registerGroups = $registerGroups; } public function getRegisterGroup(array|string $keys): ?RegisterGroup { if (is_string($keys)) { $keys = explode('.', $keys); } $firstLevelSubgroupKey = array_shift($keys); foreach ($this->registerGroups as $registerGroup) { if ($registerGroup->key === $firstLevelSubgroupKey) { return !empty($keys) ? $registerGroup->getSubgroup($keys) : $registerGroup; } } return null; } }