Ejemplo n.º 1
0
 /**
  * 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);
                 }
             }
         }
     }
 }