[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/config/Definition/Builder/ -> EnumNodeDefinition.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\EnumNode;
  15  
  16  /**
  17   * Enum Node Definition.
  18   *
  19   * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  20   */
  21  class EnumNodeDefinition extends ScalarNodeDefinition
  22  {
  23      private $values;
  24  
  25      /**
  26       * @return $this
  27       */
  28      public function values(array $values)
  29      {
  30          $values = array_unique($values);
  31  
  32          if (empty($values)) {
  33              throw new \InvalidArgumentException('->values() must be called with at least one value.');
  34          }
  35  
  36          $this->values = $values;
  37  
  38          return $this;
  39      }
  40  
  41      /**
  42       * Instantiate a Node.
  43       *
  44       * @return EnumNode The node
  45       *
  46       * @throws \RuntimeException
  47       */
  48      protected function instantiateNode()
  49      {
  50          if (null === $this->values) {
  51              throw new \RuntimeException('You must call ->values() on enum nodes.');
  52          }
  53  
  54          return new EnumNode($this->name, $this->parent, $this->values);
  55      }
  56  }


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