[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/config/Definition/Builder/ -> TreeBuilder.php (source)

   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\Builder;
  13  
  14  use Symfony\Component\Config\Definition\NodeInterface;
  15  
  16  /**
  17   * This is the entry class for building a config tree.
  18   *
  19   * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  20   */
  21  class TreeBuilder implements NodeParentInterface
  22  {
  23      protected $tree;
  24      protected $root;
  25  
  26      /**
  27       * @deprecated since 3.4. To be removed in 4.0
  28       */
  29      protected $builder;
  30  
  31      /**
  32       * Creates the root node.
  33       *
  34       * @param string      $name    The name of the root node
  35       * @param string      $type    The type of the root node
  36       * @param NodeBuilder $builder A custom node builder instance
  37       *
  38       * @return ArrayNodeDefinition|NodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array')
  39       *
  40       * @throws \RuntimeException When the node type is not supported
  41       */
  42      public function root($name, $type = 'array', NodeBuilder $builder = null)
  43      {
  44          $builder = $builder ?: new NodeBuilder();
  45  
  46          return $this->root = $builder->node($name, $type)->setParent($this);
  47      }
  48  
  49      /**
  50       * Builds the tree.
  51       *
  52       * @return NodeInterface
  53       *
  54       * @throws \RuntimeException
  55       */
  56      public function buildTree()
  57      {
  58          if (null === $this->root) {
  59              throw new \RuntimeException('The configuration tree has no root node.');
  60          }
  61          if (null !== $this->tree) {
  62              return $this->tree;
  63          }
  64  
  65          return $this->tree = $this->root->getNode(true);
  66      }
  67  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1