Symfonyで「 Enable the Yaml::PARSE_CUSTOM_TAGS 」とエラーが出た場合の対処法
SymfonyでCI回す際に bin/console lint:yaml でyamlのチェックすることもあるかと思います。
僕はlint系は常にCIでチェックする派です。
services.yamlでtagged_iteratorの設定をすると以下のエラーが出ました。
|
|
なぜこのエラーがでるかというと、!tagged_iteratorがYaml標準ではなくSymfony独自の拡張だからみたいです。
他にも !php/const や !!binary も独自の拡張みたいです。
Parsing and Dumping of Binary Data
解決策
--parse-tags のフラグをつけることで解決できます。
|
|
最後に
Tagを使ったDIの利用方法についてはカルテッドさんのこの記事みるとよいです。
Symfonyで同種のクラスを大量に使うときDIで楽するテクニック(自作タグのススメ)
ちなみに記事中には !tagged と紹介されていますが、現在は !tagged_iterator に変更になっています。
Rename !tagged to !tagged_iterator
Symfonyのタグ関連覚えると、より柔軟にアプリが作れるので覚えておいて損はないかと思います。