Callbacks
Analyse des fonctions de rappel L'analyse des fonctions de rappel callable est invoquée par les fonctions yaml_parse, yaml_parse_file ou yaml_parse_url lorsqu'une balise YAML enregistrée est rencontrée. La fonction de rappel est appelée avec la valeur de l'entité de la balise, la balise, et les drapeaux indiquant le type scalaire de l'entité. La fonction de rappel doit retourner les données que l'analyseur YAML doit émettre pour cette entité. Exemple d'analyse de fonction de rappel 'tag_callback', )); var_dump($result); ?> ]]> &example.outputs.similar; string(5) "World" [1]=> string(14) "!example/hello" [2]=> int(1) } array(1) { ["greeting"]=> string(11) "Hello World" } ]]>
Emission des fonctions de rappel L'émission des fonctions de rappel est invoquée lorsqu'un instance d'une classe enregistrée est émise via la fonction yaml_emit ou la fonction yaml_emit_file. La fonction de rappel reçoit l'objet à émettre. La fonction de rappel doit retourner un tableau contenant 2 clés : "tag" et "data". La valeur associée avec la clé "tag" doit être une chaîne à utiliser comme balise YAML dans la sortie. La valeur associée avec la clé "data" sera encodé YAML et émise à la place de l'objet intercepté. Exemple d'émission des fonctions de rappel data = $d; } /** * Yaml émet une fonction de rappel, référencée par un appel à yaml_emit par le nom de la classe * * Il est attendu de retourner un tableau contenant 2 valeurs : * - 'tag': balise personnalisée pour cette linéarisation * - 'data': valeur à convertir en yaml (array, string, bool, number) * * @param object $obj Objet à émettre * @return array Balise et données associées à émettre */ public static function yamlEmit (EmitExample $obj) { return array( 'tag' => '!example/emit', 'data' => $obj->data, ); } } $emit_callbacks = array( 'EmitExample' => array('EmitExample', 'yamlEmit') ); $t = new EmitExample(array('a','b','c')); $yaml = yaml_emit( array( 'example' => $t, ), YAML_ANY_ENCODING, YAML_ANY_BREAK, $emit_callbacks ); var_dump($yaml); ?> ]]> &example.outputs.similar;