変更点
- デフォルトで全ての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* } } }