diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php')
| -rw-r--r-- | srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php new file mode 100644 index 0000000..83f2c59 --- /dev/null +++ b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php @@ -0,0 +1,106 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Config\Definition\Builder; + +use Symfony\Component\Config\Definition\Exception\TreeWithoutRootNodeException; +use Symfony\Component\Config\Definition\NodeInterface; + +/** + * This is the entry class for building a config tree. + * + * @author Johannes M. Schmitt <schmittjoh@gmail.com> + */ +class TreeBuilder implements NodeParentInterface +{ + protected $tree; + protected $root; + + public function __construct(string $name = null, string $type = 'array', NodeBuilder $builder = null) + { + if (null === $name) { + @trigger_error('A tree builder without a root node is deprecated since Symfony 4.2 and will not be supported anymore in 5.0.', E_USER_DEPRECATED); + } else { + $builder = $builder ?: new NodeBuilder(); + $this->root = $builder->node($name, $type)->setParent($this); + } + } + + /** + * Creates the root node. + * + * @param string $name The name of the root node + * @param string $type The type of the root node + * + * @return ArrayNodeDefinition|NodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array') + * + * @throws \RuntimeException When the node type is not supported + * + * @deprecated since Symfony 4.3, pass the root name to the constructor instead + */ + public function root($name, $type = 'array', NodeBuilder $builder = null) + { + @trigger_error(sprintf('The "%s()" method called for the "%s" configuration is deprecated since Symfony 4.3, pass the root name to the constructor instead.', __METHOD__, $name), E_USER_DEPRECATED); + + $builder = $builder ?: new NodeBuilder(); + + return $this->root = $builder->node($name, $type)->setParent($this); + } + + /** + * @return NodeDefinition|ArrayNodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array') + */ + public function getRootNode(): NodeDefinition + { + if (null === $this->root) { + throw new \RuntimeException(sprintf('Calling %s() before creating the root node is not supported, migrate to the new constructor signature instead.', __METHOD__)); + } + + return $this->root; + } + + /** + * Builds the tree. + * + * @return NodeInterface + * + * @throws \RuntimeException + */ + public function buildTree() + { + $this->assertTreeHasRootNode(); + if (null !== $this->tree) { + return $this->tree; + } + + return $this->tree = $this->root->getNode(true); + } + + public function setPathSeparator(string $separator) + { + $this->assertTreeHasRootNode(); + + // unset last built as changing path separator changes all nodes + $this->tree = null; + + $this->root->setPathSeparator($separator); + } + + /** + * @throws \RuntimeException if root node is not defined + */ + private function assertTreeHasRootNode() + { + if (null === $this->root) { + throw new TreeWithoutRootNodeException('The configuration tree has no root node.'); + } + } +} |
