/** * Loops through a list of provided parameters, resolves aliasing and stores errors * for unknown parameters and optionally for parameter overriding. * * @param array $parameters Parameter name as key, parameter value as value * @param array $paramDefinitions List of parameter definitions. Either ParamDefinition objects or equivalent arrays. */ public function setParameters(array $parameters, array $paramDefinitions) { $this->paramDefinitions = ParamDefinition::getCleanDefinitions($paramDefinitions); // Loop through all the user provided parameters, and distinguish between those that are allowed and those that are not. foreach ($parameters as $paramName => $paramData) { if ($this->options->lowercaseNames()) { $paramName = strtolower($paramName); } if ($this->options->trimNames()) { $paramName = trim($paramName); } $paramValue = is_array($paramData) ? $paramData['original-value'] : $paramData; $this->rawParameters[$paramName] = $paramValue; } }