Added Yaml\Dumper::setIndentation() method to allow a custom indentation 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
This commit is contained in:
parent
ba6e3159c0
commit
3c87e2ea18
@ -18,6 +18,23 @@ namespace Symfony\Component\Yaml;
|
||||
*/
|
||||
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.
|
||||
*
|
||||
@ -46,7 +63,7 @@ class Dumper
|
||||
$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" : '');
|
||||
}
|
||||
}
|
||||
|
@ -137,6 +137,7 @@ class Yaml
|
||||
*
|
||||
* @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 @@ class Yaml
|
||||
*
|
||||
* @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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user