/** * @param Parameter $parameter * @param string $serialized * @return mixed * @throws \Exception */ public function inflate(Parameter $parameter, $serialized) { if (!$parameter->getType()->is(intval($serialized))) { throw new \Exception("[{$serialized}] is not in range " . $parameter->getType()); } return (int) $serialized; }
private function getClass(Parameter $parameter) { /** @var ClassType $type */ $type = $parameter->getType(); $class = $type->getClass(); return $class; }
/** * @param Parameter $parameter * @param string $serialized * @return \DateTime|\DateTimeImmutable|null */ public function inflate(Parameter $parameter, $serialized) { /** @var ClassType $type */ $type = $parameter->getType(); $class = $type->getClass(); return $serialized ? new $class($serialized) : null; }
private function getTypes(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof MultiType) { throw new \InvalidArgumentException("[{$type}] must be a MultiType"); } return $type->getTypes(); }
private function getClass(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof ClassType) { throw new \InvalidArgumentException("[{$type}] is not a ClassType"); } return $type->getClass(); }
/** * @param Parameter $parameter * @return EnumerationType */ private function getType(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof EnumerationType) { throw new \InvalidArgumentException("[{$type}] must be an EnumerationType"); } return $type; }
private function getInnerParameter(Parameter $parameter) { $type = $parameter->getType(); if (!$type instanceof NullableType) { throw new \InvalidArgumentException("[{$type}] is not a NullableType"); } return new Parameter($parameter->getName() . '-value', $type->getType()); }
/** * @param Parameter $parameter * @return string */ private function getType(Parameter $parameter) { switch (get_class($parameter->getType())) { case IntegerType::class: return 'number'; default: return 'text'; } }
/** * @param Parameter $parameter * @param mixed $value * @return string */ public function render(Parameter $parameter, $value) { /** @var RangeType $range */ $range = $parameter->getType(); $min = $range->getMin(); $max = $range->getMax(); $step = $range->getStep(); $value = is_null($value) ? $min : (int) $value; $name = $parameter->getName(); $id = str_replace(['[', ']'], ['-', ''], $name); return (string) new Element('div', ['class' => 'form-group', 'id' => $id], [new Element('div', ['class' => 'slider']), new Element('input', ['class' => 'amount form-control', 'type' => 'number', 'name' => $name, 'value' => $value]), new Element('script', [], ["\$(function() {\n \$('#{$id} .slider').slider({\n range: 'min',\n value: {$value},\n min: {$min},\n max: {$max},\n step: {$step},\n slide: function(event, ui) {\n \$('#{$id} .amount').val(ui.value);\n }\n });\n });"])]); }
/** * @param Parameter $parameter * @param string $serialized * @return mixed */ public function inflate(Parameter $parameter, $serialized) { switch (get_class($parameter->getType())) { case LongType::class: case IntegerType::class: return (int) $serialized; case DoubleType::class: return (double) $serialized; case FloatType::class: return (double) $serialized; default: return (string) $serialized; } }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() == new BooleanType(); }
/** * @param Parameter $parameter * @param string $suffix * @return Parameter */ private function makeInnerParameter(Parameter $parameter, $suffix = '') { /** @var ArrayType $type */ $type = $parameter->getType(); return new Parameter($parameter->getName() . $suffix, $type->getItemType()); }
/** * @param Parameter $parameter * @return IdentifierType */ private function getType(Parameter $parameter) { return $parameter->getType(); }
private function lineParameter(Parameter $parameter, $lineNumber) { return new Parameter($parameter->getName() . '-' . $lineNumber, $parameter->getType()); }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { $type = $parameter->getType(); return $type instanceof ClassType && is_subclass_of($type->getClass(), Action::class); }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() == new ClassType(\DateInterval::class); }
/** * @param Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() == new ClassType(File::class); }
/** * @param \rtens\domin\Parameter $parameter * @return bool */ public function handles(Parameter $parameter) { return $parameter->getType() instanceof StringType; }