setValueMin($valueMin); $this->setValueMax($valueMax); } public function parseValue ($arg) { if (!$this->_isDecimal($arg)) throw new InvalidArgument($arg, 'La valeur n\'est pas un réel valide'); $int = (int)$arg; if ($this->hasValueMin()) { if ($int < $this->getValueMin()) throw new InvalidArgument($int, 'La valeur est inférieure au minimum : ' . $this->getValueMin()); } if ($this->hasValueMax()) { if ($int > $this->getValueMax()) throw new InvalidArgument($int, 'La valeur est supérieur au maximum : ' . $this->getValueMax()); } return $int; } protected function _isDecimal($val) { if(!is_numeric($val)) return false; return true; } public function getValueDescription () { return ($this->hasValueMin() ? $this->getValueMin().' <= ' : '').'decimal'.($this->hasValueMax() ? ' <= '.$this->getValueMax() : ''); } /** * La valeur minimumm autorisée * * @return double|null La valeur minimum. * * @see $_valueMin */ public function getValueMin() { return $this->_valueMin; } /** * Définit la valeur minimum autorisée. * * @param double|null $valueMin La valeur minimum. * * @return $this * * @throws InvalidArgument Si la valeur minimum n'est ni null, ni un entier */ public function setValueMin($valueMin = null) { if(!is_null($valueMin) && !$this->_isDecimal($valueMin)) throw new InvalidArgument($valueMin, 'La valeur n\'est pas un entier ou null'); $this->_valueMin = (int)$valueMin; return $this; } /** * Est-ce qu'il existe une limite minimum ? * * @return boolean True s'il existe une limite, sinon False */ public function hasValueMin() { return !is_null($this->getValueMin()); } /** * La valeur maximum autorisée * * @return double|null La valeur maximum. * * @see $_valueMax */ public function getValueMax() { return $this->_valueMax; } /** * Définit la valeur maximum autorisée. * * @param double|null $valueMax La valeur maximum. * * @return $this * * @throws InvalidArgument Si la valeur maximum n'est ni null, ni un entier */ public function setValueMax($valueMax = null) { if(!is_null($valueMax) && !$this->_isDecimal($valueMax)) throw new InvalidArgument($valueMax, 'La valeur n\'est pas un entier ou null'); $this->_valueMax = (int)$valueMax; return $this; } /** * Est-ce qu'il existe une limite maximum ? * * @return boolean True s'il existe une limite, sinon False */ public function hasValueMax() { return !is_null($this->getValueMax()); } }