[ Index ]

PHP Cross Reference of phpBB-3.1.12-deutsch

title

Body

[close]

/vendor/symfony/yaml/Symfony/Component/Yaml/ -> Dumper.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\Yaml;
  13  
  14  /**
  15   * Dumper dumps PHP variables to YAML strings.
  16   *
  17   * @author Fabien Potencier <fabien@symfony.com>
  18   */
  19  class Dumper
  20  {
  21      /**
  22       * The amount of spaces to use for indentation of nested nodes.
  23       *
  24       * @var int
  25       */
  26      protected $indentation = 4;
  27  
  28      /**
  29       * Sets the indentation.
  30       *
  31       * @param int $num The amount of spaces to use for indentation of nested nodes.
  32       */
  33      public function setIndentation($num)
  34      {
  35          if ($num < 1) {
  36              throw new \InvalidArgumentException('The indentation must be greater than zero.');
  37          }
  38  
  39          $this->indentation = (int) $num;
  40      }
  41  
  42      /**
  43       * Dumps a PHP value to YAML.
  44       *
  45       * @param mixed $input                  The PHP value
  46       * @param int   $inline                 The level where you switch to inline YAML
  47       * @param int   $indent                 The level of indentation (used internally)
  48       * @param bool  $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
  49       * @param bool  $objectSupport          true if object support is enabled, false otherwise
  50       *
  51       * @return string The YAML representation of the PHP value
  52       */
  53      public function dump($input, $inline = 0, $indent = 0, $exceptionOnInvalidType = false, $objectSupport = false)
  54      {
  55          $output = '';
  56          $prefix = $indent ? str_repeat(' ', $indent) : '';
  57  
  58          if ($inline <= 0 || !is_array($input) || empty($input)) {
  59              $output .= $prefix.Inline::dump($input, $exceptionOnInvalidType, $objectSupport);
  60          } else {
  61              $isAHash = Inline::isHash($input);
  62  
  63              foreach ($input as $key => $value) {
  64                  $willBeInlined = $inline - 1 <= 0 || !is_array($value) || empty($value);
  65  
  66                  $output .= sprintf('%s%s%s%s',
  67                      $prefix,
  68                      $isAHash ? Inline::dump($key, $exceptionOnInvalidType, $objectSupport).':' : '-',
  69                      $willBeInlined ? ' ' : "\n",
  70                      $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $exceptionOnInvalidType, $objectSupport)
  71                  ).($willBeInlined ? "\n" : '');
  72              }
  73          }
  74  
  75          return $output;
  76      }
  77  }


Generated: Thu Jan 11 00:25:41 2018 Cross-referenced by PHPXref 0.7.1