public static function dump($value)
{
switch (true) {
case is_resource($value):
throw new InvalidArgumentException('Unable to dump PHP resources in a YAML file.');
case is_object($value):
return '!!php/object:' . serialize($value);
case is_array($value):
return self::dumpArray($value);
case is_null($value):
return 'null';
case true === $value:
return 'true';
case false === $value:
return 'false';
case ctype_digit($value):
return is_string($value) ? "'{$value}'" : (int) $value;
case is_numeric($value):
return is_infinite($value) ? str_ireplace('INF', '.Inf', strval($value)) : (is_string($value) ? "'{$value}'" : $value);
case false !== strpos($value, "\n"):
return sprintf('"%s"', str_replace(array('"', "\n"), array('\\"', '\\n'), $value));
case preg_match('/[ \\s \' " \\: \\{ \\} \\[ \\] , & \\*]/x', $value):
return sprintf("'%s'", str_replace('\'', '\'\'', $value));
case '' == $value:
return "''";
case preg_match(self::getTimestampRegex(), $value):
return "'{$value}'";
case in_array(strtolower($value), array('true', 'on', '+', 'yes', 'y')):
return "'{$value}'";
case in_array(strtolower($value), array('false', 'off', '-', 'no', 'n')):
return "'{$value}'";
default:
return $value;
}
}