/** @inheritdoc */ protected static function doSetConfig() { parent::doSetConfig(); /** @var ArrayCollection|null $default */ if (!($default = static::$config->remove('default'))) { throw new ConfigException('Config needs to have a default environment'); } static::$envName = static::getEnvironment(); // Build config for each environment merging default values in static::$environments = new ArrayCollection(); foreach (static::$config as $environment => $envConfig) { static::$environments[$environment] = $default->copy()->replaceRecursive($envConfig); } if (!static::$environments->containsKey(static::$envName)) { static::$environments[static::$envName] = $default; } static::$config = static::$environments[static::$envName]; }
/** * Add environements to host detector. * * @param array $environments */ public static function addEnvironments(array $environments) { static::$environments = $environments + static::$environments; }