Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

VariableNode.php

Zuletzt modifiziert: 09.10.2024, 12:56 - Dateigröße: 2.90 KiB


001  <?php
002   
003  /*
004   * This file is part of the Symfony package.
005   *
006   * (c) Fabien Potencier <fabien@symfony.com>
007   *
008   * For the full copyright and license information, please view the LICENSE
009   * file that was distributed with this source code.
010   */
011   
012  namespace Symfony\Component\Config\Definition;
013   
014  use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
015   
016  /**
017   * This node represents a value of variable type in the config tree.
018   *
019   * This node is intended for values of arbitrary type.
020   * Any PHP type is accepted as a value.
021   *
022   * @author Jeremy Mikola <jmikola@gmail.com>
023   */
024  class VariableNode extends BaseNode implements PrototypeNodeInterface
025  {
026      protected $defaultValueSet = false;
027      protected $defaultValue;
028      protected $allowEmptyValue = true;
029   
030      /**
031       * {@inheritdoc}
032       */
033      public function setDefaultValue($value)
034      {
035          $this->defaultValueSet = true;
036          $this->defaultValue = $value;
037      }
038   
039      /**
040       * {@inheritdoc}
041       */
042      public function hasDefaultValue()
043      {
044          return $this->defaultValueSet;
045      }
046   
047      /**
048       * {@inheritdoc}
049       */
050      public function getDefaultValue()
051      {
052          $v = $this->defaultValue;
053   
054          return $v instanceof \Closure ? $v() : $v;
055      }
056   
057      /**
058       * Sets if this node is allowed to have an empty value.
059       *
060       * @param bool $boolean True if this entity will accept empty values
061       */
062      public function setAllowEmptyValue($boolean)
063      {
064          $this->allowEmptyValue = (bool) $boolean;
065      }
066   
067      /**
068       * {@inheritdoc}
069       */
070      public function setName($name)
071      {
072          $this->name = $name;
073      }
074   
075      /**
076       * {@inheritdoc}
077       */
078      protected function validateType($value)
079      {
080      }
081   
082      /**
083       * {@inheritdoc}
084       */
085      protected function finalizeValue($value)
086      {
087          if (!$this->allowEmptyValue && $this->isValueEmpty($value)) {
088              $ex = new InvalidConfigurationException(sprintf(
089                  'The path "%s" cannot contain an empty value, but got %s.',
090                  $this->getPath(),
091                  json_encode($value)
092              ));
093              if ($hint = $this->getInfo()) {
094                  $ex->addHint($hint);
095              }
096              $ex->setPath($this->getPath());
097   
098              throw $ex;
099          }
100   
101          return $value;
102      }
103   
104      /**
105       * {@inheritdoc}
106       */
107      protected function normalizeValue($value)
108      {
109          return $value;
110      }
111   
112      /**
113       * {@inheritdoc}
114       */
115      protected function mergeValues($leftSide, $rightSide)
116      {
117          return $rightSide;
118      }
119   
120      /**
121       * Evaluates if the given value is to be treated as empty.
122       *
123       * By default, PHP's empty() function is used to test for emptiness. This
124       * method may be overridden by subtypes to better match their understanding
125       * of empty data.
126       *
127       * @param mixed $value
128       *
129       * @return bool
130       */
131      protected function isValueEmpty($value)
132      {
133          return empty($value);
134      }
135  }
136