Публикующие callback-функции вызываются тогда, когда с помощью
   yaml_emit() или yaml_emit_file()
   публикуются экземпляры зарегистрированных классов . В функцию
   передаётся публикуемый объект. Callback-функция должна вернуть массив с двумя ключами:
   "tag" и "data".
   Значение, связанное с ключом "tag" должно быть
   строкой, содержащей тег YAML для вывода. Значение, связанное с ключом
   "data" должно быть закодировано как YAML
   и опубликовано вместо перехваченного объекта.
  
Пример #1 Пример публикующей callback-функции
<?php
class EmitExample {
  public $data;    // данные должны быть понятного pecl/yaml типа
  public function __construct ($d) {
    $this->data = $d;
  }
  /**
   * Публикующая callback-функция Yaml.
   *
   * Ожидается возвращение массива с двумя значениями 2:
   *   - 'tag': пользовательский тег для этой сериализации
   *   - 'data': значение для преобразование в yaml (массив, строка, логическое, число)
   *
   * @param object $obj Публикуемый объект
   * @return array Тег и замещающие данные для публикации
   */
  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);
?>Вывод приведённого примера будет похож на:
string(43) "--- example: !example/emit - a - b - c ... "
