Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added Yaml\Dumper::setIndentation() method to allow a custom indentat…

…ion level of nested nodes.

YAML does not specify an absolute indentation level, but a consistent indentation of nested nodes only: http://www.yaml.org/spec/1.2/spec.html#space/indentation/

Projects that are generally using 2 spaces for indentation should be able to retain consistency with their coding standards by supplying a custom value for the new $indent parameter added to Yaml::dump(), or the new Dumper::setIndentation() method.

The new parameter is a backwards-compatible API addition and defaults to the previous default of 4 (which was changed from 2 via PR #2242 only recently).

Conflicts:
	src/Symfony/Component/Yaml/Dumper.php
	src/Symfony/Component/Yaml/Yaml.php
  • Loading branch information...
commit 8a6017b5fe411214f25af5d25365b656be77d4b9 1 parent 9ac8f42
@sun sun authored fabpot committed
Showing with 21 additions and 2 deletions.
  1. +18 −1 Dumper.php
  2. +3 −1 Yaml.php
View
19 Dumper.php
@@ -19,6 +19,23 @@
class Dumper
{
/**
+ * The amount of spaces to use for indentation of nested nodes.
+ *
+ * @var integer
+ */
+ protected $indentation = 2;
+
+ /**
+ * Sets the indentation.
+ *
+ * @param integer $num The amount of spaces to use for intendation of nested nodes.
+ */
+ public function setIndentation($num)
+ {
+ $this->indentation = $num;
+ }
+
+ /**
* Dumps a PHP value to YAML.
*
* @param mixed $input The PHP value
@@ -46,7 +63,7 @@ public function dump($input, $inline = 0, $exceptionOnInvalidType = false, $obje
$prefix,
$isAHash ? Inline::dump($key, $exceptionOnInvalidType, $objectSupport).':' : '-',
$willBeInlined ? ' ' : "\n",
- $this->dump($value, $inline - 1, $exceptionOnInvalidType, $objectSupport, $willBeInlined ? 0 : $indent + 2)
+ $this->dump($value, $inline - 1, $exceptionOnInvalidType, $objectSupport, $willBeInlined ? 0 : $indent + $this->indentation)
).($willBeInlined ? "\n" : '');
}
}
View
4 Yaml.php
@@ -137,6 +137,7 @@ public static function parse($input, $exceptionOnInvalidType = false, $objectSup
*
* @param array $array PHP array
* @param integer $inline The level where you switch to inline YAML
+ * @param integer $indent The amount of spaces to use for indentation of nested nodes.
* @param Boolean $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
* @param Boolean $objectSupport true if object support is enabled, false otherwise
*
@@ -144,9 +145,10 @@ public static function parse($input, $exceptionOnInvalidType = false, $objectSup
*
* @api
*/
- public static function dump($array, $inline = 2, $exceptionOnInvalidType = false, $objectSupport = false)
+ public static function dump($array, $inline = 2, $indent = 4, $exceptionOnInvalidType = false, $objectSupport = false)
{
$yaml = new Dumper();
+ $yaml->setIndentation($indent);
return $yaml->dump($array, $inline, $exceptionOnInvalidType, $objectSupport);
}
Please sign in to comment.
Something went wrong with that request. Please try again.