aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_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.php106
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.');
+ }
+ }
+}