protected function setup()
 {
     $this->innerTransformer = $this->getMockBuilder(TransformerInterface::class)->setMethods(['transform'])->getMockForAbstractClass();
     $this->innerTransformer->expects($this->any())->method('transform')->will($this->returnCallback(function ($value) {
         return $value + 5;
     }));
 }
Ejemplo n.º 2
0
 /**
  * @param mixed $value
  *
  * @return mixed
  */
 protected function transformRecursive($value)
 {
     if (is_array($value) || $value instanceof \Traversable) {
         foreach ($value as &$subvalue) {
             $subvalue = $this->transformRecursive($subvalue);
         }
     } else {
         $value = $this->transformer->transform($value);
     }
     return $value;
 }
Ejemplo n.º 3
0
 /**
  * @inheritdoc
  */
 public function transform($value)
 {
     // not an array, must be traversable
     if (!is_array($value) && !$value instanceof \Traversable) {
         throw new TransformationFailedException(sprintf('Expected an array or \\Traversable to transform, got "%s" instead.', gettype($value)));
     }
     // traverse through object, transforming each item
     foreach ($value as $key => $val) {
         $value[$key] = $this->transformer->transform($val);
     }
     return $value;
 }
Ejemplo n.º 4
0
 /**
  * @param ParameterBag $item
  *
  * @throws TransformationFailedException
  */
 public function transform(ParameterBag $item)
 {
     if (!$item->has($this->field)) {
         return;
     }
     $value = $item->get($this->field);
     try {
         $newValue = $this->transformer->transform($value);
         $item->set($this->field, $newValue);
     } catch (TransformationFailedException $e) {
         // set the value to null as we couldn't transform it
         $item->set($this->field, null);
         throw new TransformationFailedException(sprintf('Transforming "%s" using "%s" failed with message: %s.', $this->field, get_class($this->transformer), $e->getMessage()), null, $e);
     }
 }