Согласно официальной документации , есть способ предоставить обратные вызовы для пользовательских тегов YAML:
mixed yaml_parse ( string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks ]]] )
callbacks
Обработчики содержимого для узлов YAML. Ассоциативный массив тегов YAML => сопоставления обратного вызова.
Однако, похоже, нет другой документации по этому вопросу, даже в исходном коде расширения!
Я создал этот сценарий в качестве теста:
function () {
echo "YAML_STR_TAG\n";
$args = func_get_args();
print_r($args);
return 'x';
},
'!custom' => function () {
echo "!custom\n";
$args = func_get_args();
print_r($args);
return 'y';
}
)));
И я получил это вывод:
$ php yaml.php
YAML_STR_TAG
Array
(
[0] => prop
[1] => tag:yaml.org,2002:str
[2] => 1
)
!custom
Array
(
[0] => val
[1] => !custom
[2] => 1
)
Array
(
[x] => y
)
Из этого я могу сказать несколько вещей:
YAML _ * _ SCALAR_STYLE
. Может ли кто-нибудь подтвердить ожидаемое поведение этой функции?