Los análisis de callbacks son invocados por las funciones yaml_parse(), yaml_parse_file() o yaml_parse_url() cuando encuentran una etiqueta YAML registrada. Al callback se le pasa el valor de la entidad de la etiqueta, la etiqueta, y los flags que indican el estilo escalar de la entidad. El callback debe devolver los datos que el convertidor YAML debe emitir para esta entidad.
Ejemplo #1 Ejemplo de análisis de callback
<?php
/**
* Análisis de callback para un tag yaml.
* @param mixed $valor Datos del archivo yaml
* @param string $tag Etiqueta que desencadenó el callback
* @param int $flags Estilo escalar de la entidad (ver YAML_*_SCALAR_STYLE)
* @return mixed Valor que el convertidor YAML debería emitir para el valor dado
*/
function tag_callback ($valor, $tag, $flags) {
var_dump(func_get_args()); // depurando
return "Hola {$valor}";
}
$yaml = <<<YAML
saludo: !ejemplo/hola Mundo
YAML;
$resultado = yaml_parse($yaml, 0, $ndocs, array(
'!ejemplo/hola' => 'tag_callback',
));
var_dump($resultado);
?>
El resultado del ejemplo sería algo similar a:
array(3) { [0]=> string(5) "Mundo" [1]=> string(14) "!ejemplo/hola" [2]=> int(1) } array(1) { ["saludo"]=> string(11) "Hola Mundo" }