formatter = new Duration(); $constraint = new DurationConstraint(); $this->pattern = $constraint->pattern; } /** * @param int $intToFormat * @return string|null */ public function transform($intToFormat) { try { return $this->formatter->format($intToFormat); } catch (\Exception $e) { throw new TransformationFailedException($e->getMessage()); } } /** * @param string|null $formatToInt * @return int|null */ public function reverseTransform($formatToInt) { if (null === $formatToInt) { return null; } if (empty($formatToInt)) { return 0; } // we need this one here, because the data transformer is executed BEFORE the constraint is called if (!preg_match($this->pattern, $formatToInt)) { throw new TransformationFailedException('Invalid duration format given'); } try { return $this->formatter->parseDurationString($formatToInt); } catch (\Exception $e) { throw new TransformationFailedException($e->getMessage()); } } }