プラグインやカスタマイズで、PurchaseFlowに処理を追加したい。
だけど本体側のファイルを編集することや、他者によるカスタマイズを上書きすることは避けたい。
こんなときはSymfonyのサービスコンテナのDecorateという機能を使う。
これ読んで下さい。
https://symfony.com/doc/3.4/service_container/service_decoration.html
ちょっと待って! Doctrine\Common\Collections\ArrayCollection
のコンストラクタはarrayしか受け取れないんだけど!
そんなときはラッパークラスを用意してあげて、arrayでもDoctrine\Common\Collections\ArrayCollection
でも受け取れるようにしてあげましょう。
アッハイ、それでいいです。
@CartFlow
@ShoppingFlow
@OrderFlow
こんな機能があったんですねドキュメントにも書いてない機能だしこの記事を作ったあとで存在に気付きました。
単純に末尾に追加するんじゃないケース、例えば先頭に追加するとか特定のクラスインスタンスの前後に挿入するとかってときは、本稿の方法を採用したらいいんじゃないでしょうか。