## Émission des fonctions de rappel

L'émission des fonctions de rappel est invoquée lorsqu'une 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ée YAML et émise à la place de l'objet intercepté.

Exemple #1 Exemple d'émission des fonctions de rappel

    <?php
    class EmitExample {
      public $data;    // les données peuvent être de n'importe quel type valide pecl/yaml

      public function __construct ($d) {
        $this->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 sérialisation
       *   - '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);
    ?>

Résultat de l'exemple ci-dessus est similaire à :

    string(43) "---
    example: !example/emit
    - a
    - b
    - c
    ...
    "

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open