1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\Config\Definition; 13 14use Symfony\Component\Config\Definition\Exception\InvalidTypeException; 15 16/** 17 * This node represents a float value in the config tree. 18 * 19 * @author Jeanmonod David <david.jeanmonod@gmail.com> 20 */ 21class FloatNode extends NumericNode 22{ 23 /** 24 * {@inheritdoc} 25 */ 26 protected function validateType($value) 27 { 28 // Integers are also accepted, we just cast them 29 if (\is_int($value)) { 30 $value = (float) $value; 31 } 32 33 if (!\is_float($value)) { 34 $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected "float", but got "%s".', $this->getPath(), get_debug_type($value))); 35 if ($hint = $this->getInfo()) { 36 $ex->addHint($hint); 37 } 38 $ex->setPath($this->getPath()); 39 40 throw $ex; 41 } 42 } 43 44 /** 45 * {@inheritdoc} 46 */ 47 protected function getValidPlaceholderTypes(): array 48 { 49 return ['float']; 50 } 51} 52