/** * Parses the connection string into a collection of key/value pairs. * * @param string $argumentName Name of the argument to be used in error * messages. * @param string $connectionString Connection string. * * @return array * * @static */ public static function parseConnectionString($argumentName, $connectionString) { Validate::isString($argumentName, 'argumentName'); Validate::notNullOrEmpty($argumentName, 'argumentName'); Validate::isString($connectionString, 'connectionString'); Validate::notNullOrEmpty($connectionString, 'connectionString'); $parser = new ConnectionStringParser($argumentName, $connectionString); return $parser->_parse(); }
/** * Parses the connection string and then validate that the parsed keys belong to * the $validSettingKeys. * * @param string $connectionString The user provided connection string. * * @return array The tokenized connection string keys. * * @throws \RuntimeException */ protected static function parseAndValidateKeys($connectionString) { // Initialize the static values if they are not initialized yet. if (!static::$isInitialized) { static::init(); static::$isInitialized = true; } $tokenizedSettings = ConnectionStringParser::parseConnectionString('connectionString', $connectionString); // Assure that all given keys are valid. foreach ($tokenizedSettings as $key => $value) { if (!Utilities::inArrayInsensitive($key, static::$validSettingKeys)) { throw new \RuntimeException(sprintf(Resources::INVALID_CONNECTION_STRING_SETTING_KEY, $key, implode("\n", static::$validSettingKeys))); } } return $tokenizedSettings; }