Version 1
[yaffs-website] / vendor / symfony / config / Definition / ScalarNode.php
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
12 namespace Symfony\Component\Config\Definition;
13
14 use Symfony\Component\Config\Definition\Exception\InvalidTypeException;
15
16 /**
17  * This node represents a scalar value in the config tree.
18  *
19  * The following values are considered scalars:
20  *   * booleans
21  *   * strings
22  *   * null
23  *   * integers
24  *   * floats
25  *
26  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
27  */
28 class ScalarNode extends VariableNode
29 {
30     /**
31      * {@inheritdoc}
32      */
33     protected function validateType($value)
34     {
35         if (!is_scalar($value) && null !== $value) {
36             $ex = new InvalidTypeException(sprintf(
37                 'Invalid type for path "%s". Expected scalar, but got %s.',
38                 $this->getPath(),
39                 gettype($value)
40             ));
41             if ($hint = $this->getInfo()) {
42                 $ex->addHint($hint);
43             }
44             $ex->setPath($this->getPath());
45
46             throw $ex;
47         }
48     }
49
50     /**
51      * {@inheritdoc}
52      */
53     protected function isValueEmpty($value)
54     {
55         return null === $value || '' === $value;
56     }
57 }