Updated PHP Windows builds for Brotli security fix

É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
...
"
+add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top