xiaowang/kirby/src/Data/YamlSymfony.php
2024-12-20 12:37:35 +01:00

44 lines
974 B
PHP

<?php
namespace Kirby\Data;
use Kirby\Cms\App;
use Kirby\Toolkit\A;
use Symfony\Component\Yaml\Yaml as Symfony;
/**
* Simple Wrapper around the Symfony YAML class
*
* @package Kirby Data
* @author Nico Hoffmann <nico@getkirby.com>
* @link https://getkirby.com
* @copyright Bastian Allgeier
* @license https://opensource.org/licenses/MIT
*/
class YamlSymfony
{
/**
* Converts an array to an encoded YAML string
*/
public static function encode($data): string
{
$kirby = App::instance(null, true);
return Symfony::dump(
$data,
$kirby?->option('yaml.params.inline') ?? 9999,
$kirby?->option('yaml.params.indent') ?? 2,
Symfony::DUMP_MULTI_LINE_LITERAL_BLOCK | Symfony::DUMP_EMPTY_ARRAY_AS_SEQUENCE
);
}
/**
* Parses an encoded YAML string and returns a multi-dimensional array
*/
public static function decode($string): array
{
$result = Symfony::parse($string);
$result = A::wrap($result);
return $result;
}
}