発行コールバックが起動するのは、登録済みのクラスのインスタンスが
   yaml_emit() や
   yaml_emit_file() から呼び出されたときです。
   コールバックに渡されるのは、発行対象のオブジェクトです。
   このコールバックは、二つの要素
   "tag" および "data"
   を持つ配列を返す必要があります。
   "tag" の値は文字列で、出力時の YAML タグとして用いられます。
   "data" の値は YAML 形式にエンコードされ、
   解析対象のオブジェクトの代わりに発行されます。
  
例1 Emit callback example
<?php
class EmitExample {
  public $data;    // データは pecl/yaml で使える形式となります
  public function __construct ($d) {
    $this->data = $d;
  }
  /**
   * Yaml 発行コールバック関数。yaml_emit からクラス名で参照される
   *
   * 二つの要素を持つ配列を返す。
   *   - 'tag': このシリアライズ用のカスタムタグ
   *   - 'data': yaml に変換する値 (array, string, bool, number)
   *
   * @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 ... "
