/** * Applies the parameter manipulations. * @see IParam::format * * @since 0.5 * * @param $definitions array of IParamDefinition * @param $params array of IParam * @param ValidatorOptions $options */ public function format(array &$definitions, array $params, ValidatorOptions $options) { if ($this->definition->shouldManipulateDefault() || !$this->wasSetToDefault()) { $this->definition->format($this, $definitions, $params); $definitions = ParamDefinition::getCleanDefinitions($definitions); // Compat code. $manipulations = array(); foreach ($this->definition->getManipulations() as $manipulation) { if (!$manipulation instanceof ParamManipulationInteger && !$manipulation instanceof ParamManipulationFloat && !$manipulation instanceof ParamManipulationString) { $manipulations[] = $manipulation; } } // This whole block is compat code, to be removed in 0.7. if ($manipulations !== array()) { $parameter = $this->toParameter(); $parameters = array(); foreach ($params as $param) { $parameters[$param->getName()] = $param->toParameter(); } foreach ($definitions as $definition) { if (!array_key_exists($definition->getName(), $parameters)) { $parameters[$definition->getName()] = $definition->toParameter(); } } foreach ($manipulations as $manipulation) { $manipulation->manipulate($parameter, $parameters); } $this->setValue($parameter->getValue()); foreach ($parameters as $parameterObject) { if (!array_key_exists($parameterObject->getName(), $params)) { $definitions[$parameterObject->getName()] = ParamDefinition::newFromParameter($parameterObject); } } } } }