private function assertServersLoaded() { if (null !== $this->servers) { return; } $serversData = $this->rootModuleFileManager->getExtraKey(self::SERVERS_KEY); if ($serversData) { $jsonValidator = new JsonValidator(); $errors = $jsonValidator->validate($serversData, __DIR__ . '/../../res/schema/servers-schema-1.0.json'); if (count($errors) > 0) { throw new ValidationFailedException(sprintf("The extra key \"%s\" is invalid:\n%s", self::SERVERS_KEY, implode("\n", $errors))); } } $this->servers = new ServerCollection(); $this->serversData = (array) $serversData; foreach ($this->serversData as $serverName => $serverData) { $this->servers->add($this->dataToServer($serverName, $serverData)); } }