舛川 竜治
masuk****@nii*****
2006年 3月 8日 (水) 15:58:31 JST
舛川です。 質問なのですが、 「Validator_Required.class.php」クラス等の内部でDIコンテナに登録してあるクラスを呼び出そうとした場合、 現状、できる術がないように思えるのですがなにかありますでしょうか? Convarterでも同様のことが言えます。 コンポーネントに一般的なクラスを配置し、他のクラスからそれらを呼び出して使用する場合、 Validatorのクラス内でも呼び出したくなるのですが・・・。 Validatorのクラスの中で直接、newすればいいのでしょうが、 既にDIコンテナ内でNewしてあるのですから、 それを使用したいです。 もちろん、DIコンテナで登録していなければ、 Validator側でエラーになりますが・・・。 また、Action内でそれらをすべて行えばできますが チェックする部分とアクション(表示・動作)する処理を分けたいと思っております。 Validator,Convarterのクラスを書き換える手段でしたら Actionクラスのref:XXXのような指定をValidator,Convarterでも行う必要がでてくると思うのですが いかがでしょうか? 「Validator,Convarterの指定方法をDIContainer2の指定のようにファイル名指定として 指定した別ファイルにValidat(Convart)内容、Validator(Convarter)毎にDIコンテナのクラスをsetterするためのref指定」 このように考えていくと。。。そもそもValidator,Convarter、及びFilter,Actionもクラスなので Componentの一つとなり、他のComponentを呼び出す方法を作らないといけないような気がします。 こうなっていくとMaple4系的なイメージかもしれません。 回避策でもあればお教え願えませんでしょうか? 上記のような使い方はしないっていうのもありで お答え願いたいです。