getInput(); if (!\is_array($input)) { throw new \UnexpectedValueException('Input must be an array'); } $mergeFunction = $this->getOption($state, 'merge_function'); if (!\in_array($mergeFunction, self::MERGE_FUNC, true)) { throw new \InvalidArgumentException("Unknown merge function {$mergeFunction}"); } $this->mergedOutput = $mergeFunction($this->mergedOutput, $input); } /** * @param ProcessState $state */ public function proceed(ProcessState $state) { $state->setOutput($this->mergedOutput); } /** * @param OptionsResolver $resolver */ protected function configureOptions(OptionsResolver $resolver) { $resolver->setDefault('merge_function', 'array_merge'); $resolver->setAllowedTypes('merge_function', 'string'); $resolver->setAllowedValues('merge_function', self::MERGE_FUNC); } }