Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 72 lines (62 sloc) 1.978 kb
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
1d31820 blue-eyes normalized license messages in PHP files
blue-eyes authored
5 *
687f8a7 Fabien Potencier replaced symfony-project.org by symfony.com
fabpot authored
6 * (c) Fabien Potencier <fabien@symfony.com>
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
1d31820 blue-eyes normalized license messages in PHP files
blue-eyes authored
12 namespace Symfony\Component\Yaml;
13
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
14 /**
15 * Dumper dumps PHP variables to YAML strings.
16 *
687f8a7 Fabien Potencier replaced symfony-project.org by symfony.com
fabpot authored
17 * @author Fabien Potencier <fabien@symfony.com>
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
18 */
19 class Dumper
20 {
21 /**
a129755 sun Added Yaml\Dumper::setIndentation() method to allow a custom indentation...
sun authored
22 * The amount of spaces to use for indentation of nested nodes.
23 *
24 * @var integer
25 */
26 protected $indentation = 4;
27
28 /**
29 * Sets the indentation.
30 *
31 * @param integer $num The amount of spaces to use for intendation of nested nodes.
32 */
33 public function setIndentation($num)
34 {
35 $this->indentation = $num;
36 }
37
38 /**
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
39 * Dumps a PHP value to YAML.
40 *
e84e637 Fabien Potencier fixed phpdoc @param alignment
fabpot authored
41 * @param mixed $input The PHP value
42 * @param integer $inline The level where you switch to inline YAML
43 * @param integer $indent The level of indentation (used internally)
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
44 *
45 * @return string The YAML representation of the PHP value
46 */
47 public function dump($input, $inline = 0, $indent = 0)
48 {
49 $output = '';
50 $prefix = $indent ? str_repeat(' ', $indent) : '';
51
52 if ($inline <= 0 || !is_array($input) || empty($input)) {
53 $output .= $prefix.Inline::dump($input);
54 } else {
55 $isAHash = array_keys($input) !== range(0, count($input) - 1);
56
57 foreach ($input as $key => $value) {
58 $willBeInlined = $inline - 1 <= 0 || !is_array($value) || empty($value);
59
60 $output .= sprintf('%s%s%s%s',
61 $prefix,
62 $isAHash ? Inline::dump($key).':' : '-',
63 $willBeInlined ? ' ' : "\n",
a129755 sun Added Yaml\Dumper::setIndentation() method to allow a custom indentation...
sun authored
64 $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation)
88d5c1b Fabien Potencier renamed Symfony\Components to Symfony\Component
fabpot authored
65 ).($willBeInlined ? "\n" : '');
66 }
67 }
68
69 return $output;
70 }
71 }
Something went wrong with that request. Please try again.