[Tokyo-pm] CatalystでのModelコンポーネントのインスタンス生成に関して
Hiraku Kawabe
hiraku.kawabe @ gmail.com
2011年 4月 27日 (水) 09:12:44 PDT
お世話になります。河部と申します。
ここしばらく試行と情報の収集を続けていたのですが、既に自助努力では手詰ま
りとなって
しまいました。
お詳しい方のご助言をいただきたく存じます。
Subjectの通り、CatalystでのModelのインスタンス生成時に関することなのですが、
今、私がしたいと思っていることは、
「リクエスト単位での情報をModelのコンストラクタに渡して、都度インスタン
スを生成する」
ということです。
前提として、下記の様な事を意図しております。
* モデルをPOPOとして作成し、これをCatalystからはCatalyst::Model::Adaptor
を経由して
呼び出す。(実際にはCatalyst::Model::Factoryを使用しております)
* モデルはMooseベースで実装する。
そのうえで、
$c->model('MyApp::OneOfTheModel’)->new($c->req->params->{arg1});
といった形で、リクエスト毎に得たパラメータを、Modelのコンストラクタに渡
したいと
考えております。
ドキュメント、Web Pageを色々あたってはいたのですが、だいたいの感じとして、
* Catalyst::Model::Adaptor の派生クラスで、
- prepare_argument(), mangle_argument()をオーバーライドする
* Mooseの派生クラスで、sub BUILD、sub BUILDARGを実装する。
* Model::Component の派生クラスとして、sub ACCEPT_CONTEXTをオーバーライ
ドする
などの合わせ技で解決できそうな雰囲気を感じているのですが、手許での試行で
はうまくいって
おりません。
# 都度、Data::Dumperで引数の内容を見ているのですが、空っぽだったりしてい
ます。
色々、情報をあさっていましたが、近くに迫りつつある感のあるものの到達はせず、
という状態です。Perlのメタプログラミングに関しては無知に近いです。
どうにかこの状況を救っていただけますと幸いです。
また、贅沢を言わせていただければ、Catalyst::Model::Adaptorの代わりに、
- Catalyst::Model::MultiAdaptor
- Catalyst::Model::DynamicAdaptor
を使用した場合に関しても、同じことをするにはどこをいじれば良いかなど、お
教えいただけると
非常に助かります。
よろしくお願いいたします。
失礼いたします。
---
Hiraku Kawabe
Email: hiraku.kawabe @ gmail.com
Tokyo-pm メーリングリストの案内