php_yaml 0.1.0 Released

php_yaml-0.1.0.tgz


変更点

  • デフォルトで全てのYAMLドキュメントをパースしていたのを、最初のYAMLドキュメントだけをパースするように仕様変更
  • オブジェクトが複合キーに指定された場合、serialize()する前に__toString()を試みるようにした
  • エイリアスをリファレンスとして扱うようにした
  • tag:yaml.org,2002:timestampタグ処理用コールバック関数が指定されていた場合、タグが明示されていないtimestamp型のデータもその関数で処理するようにした


エイリアスをリファレンスとして扱うようにしたことで下記のような再帰的な定義にも対応しました
example.yaml

foo: &ref
  bar: baz
  qux: *ref

パース結果

php -r 'var_dump(yaml_parse_file("example.yaml"));'
array(1) {
  ["foo"]=>
  &array(2) {
    ["bar"]=>
    string(3) "baz"
    ["qux"]=>
    &array(2) {
      ["bar"]=>
      string(3) "baz"
      ["qux"]=>
      *RECURSION*
    }
  }
}