ログ日記

作業ログと日記とメモ

複雑なメソッドインジェクション

あるコンポーネントのメソッドの戻り値を別のコンポーネントのコンストラクタ引数にしたい。
これはiniファイルでは限界かも。


安易に思い付くのは、シェルスクリプト的なもの。

[someComponent]
constructor = $arg

[vars]
arg = OtherComponent.someMethod

でもこれを認めると簡単なはずのiniファイルがややこしくなるな・・。パース処理もあまり書きたくない。


あるコンポーネントのコンストラクタ引数に、リクエストから取得した変数を使いたいんだよね。
コンストラクタじゃなくて普通のメソッドにすればややこしいことは全然起きないんだけど、クラスの都合上コンストラクタに指定したい。
そしてコンポーネントインスタンスじゃなくてメソッドを実行した戻り値の文字列を設定したい。そうじゃないと変な依存関係が生まれるので。


タイプヒンティングインジェクションを使ってなかったら、何の問題もない処理なんだけどなぁ・・。オブジェクトの生成処理が完全に自動化されてるから問題なのだ。
しかしここでXMLYAMLを使うのは負けた気がするのでiniファイルで簡潔に書ける方法を考えてみる。