- 1 名前:nobodyさん [2005/08/10(水) 02:21:08 ID:CBjrwwHd]
- ※フレームワーク
Phrame本家 phrame.sourceforge.net/ Mojavi Project www.mojavi.org/ mojavijapan mojavi.p0t.jp/ Agavi本家 agavi.org/ Agavi.JP agavi.jp/ [ 日本発 ] Maple Project kunit.jp/maple/ [ 日本発 ] Ethna -PHPウェブアプリケーションフレームワーク- ethna.jp/ethna-tutorial-startup-practice1.html ※関連スレ 【PHP】フレームワークMapleに舌鼓 pc8.2ch.net/test/read.cgi/php/1122105465/ 【PHPフレームワーク】Ethna【スケルトン自動作成】 pc8.2ch.net/test/read.cgi/php/1123070439/ PHPでオブジェクト指向プログラミング pc8.2ch.net/test/read.cgi/php/1113724557/ その他>>2-5参照汁
- 732 名前:nobodyさん mailto:sage [2005/12/06(火) 23:32:14 ID:???]
- あのー、function & getAuthorizationHandler ()
この、& の意味は何ですか?
- 733 名前:nobodyさん mailto:sage [2005/12/06(火) 23:36:36 ID:???]
- それってフレームワーク関係ないでしょ
- 734 名前:nobodyさん mailto:sage [2005/12/06(火) 23:38:54 ID:???]
- あのー、じゃあ何ですか?
- 735 名前:nobodyさん mailto:sage [2005/12/06(火) 23:39:38 ID:???]
- PHPのくだらない質問スレ
- 736 名前:nobodyさん mailto:sage [2005/12/07(水) 00:25:58 ID:???]
- >>732
山椒だよ。
- 737 名前:nobodyさん mailto:sage [2005/12/07(水) 00:26:56 ID:???]
- ピリリと辛い
- 738 名前:nobodyさん mailto:sage [2005/12/07(水) 04:47:59 ID:???]
- フレームワークのControllerを開始するメソッドの名前が
dispatchで、辞書で調べると 「打ち負かす」とか「急送する」とかの意味らしい。 いまいち合ってない気がするけど 何か言われがあるのかな。 executeで良くね?と思うんだが。
- 739 名前:nobodyさん mailto:sage [2005/12/07(水) 04:59:46 ID:???]
- 実際の処理(ビジネスロジック)をする(execute)のはControllerじゃなくてModelだし、
Controllerは単にリクエストを適切なActionへ発送(dispatch)するからじゃね?
- 740 名前:nobodyさん mailto:sage [2005/12/07(水) 05:49:46 ID:???]
- あーなるほど。
- 741 名前:nobodyさん mailto:sage [2005/12/07(水) 06:05:54 ID:???]
- dispatchはどっちかというと「割り当てる」って意味だよ。
そこらのフレームワークはStrutsの影響だと思うけど、元々はOSのスケジューラがスレッドをCPUに割り当てるって意味。 MVCフレームワークではリクエストに応じてactionだのviewだのを割り当てるってこと(>>739はその意味で当たってると思う)。 loadなんかも「積む」って意味をこえて、メモリからレジスタにデータを読み込むって意味だったものが、ファイルなどの内容をメモリに読み込むって意味に転じて、果てにはWebサーバからブラウザにデータを読み込むってことにまで使われるようになった例だし。
- 742 名前:nobodyさん mailto:sage [2005/12/07(水) 10:15:56 ID:???]
- >>736
ありがとう。ピリリと解決。
- 743 名前:nobodyさん mailto:sage [2005/12/07(水) 17:30:53 ID:???]
- >>730
agavi.jpの更新が完全に止まっちゃってるのが残念だね。
- 744 名前:nobodyさん mailto:age [2005/12/07(水) 20:43:55 ID:???]
- 最近はここだよ。
翻訳してくれてる。 agaviユーザ多いかな。 www.geocities.jp/toyprog/
- 745 名前:nobodyさん mailto:sage [2005/12/07(水) 21:00:25 ID:???]
- >>744
おお、こんなとこあったんだ。 サンクス。
- 746 名前:nobodyさん mailto:sage [2005/12/07(水) 22:03:43 ID:???]
- つか、Ajaviは公式が0.9から全然動きが無いな。
- 747 名前:nobodyさん mailto:sage [2005/12/07(水) 22:05:08 ID:???]
- svnは?
- 748 名前:nobodyさん mailto:sage [2005/12/07(水) 23:01:18 ID:???]
- >>747
snvでは結構更新あるよ。
- 749 名前:nobodyさん mailto:sage [2005/12/07(水) 23:23:39 ID:???]
- zend frameworkキタ━━━━(゚∀゚)━━━━━!!!
htp://www.phparch.com/webcasts/recordings/dec0205_zend.php
- 750 名前:nobodyさん mailto:sage [2005/12/07(水) 23:50:26 ID:???]
- >>749
英語のプレゼンだからサッパリわからんが PHPをピィチピーと発音することは分かった
- 751 名前:nobodyさん mailto:sage [2005/12/07(水) 23:53:53 ID:???]
- ははは
もれもそれ思ったよ!これからピィチピーって言おう!
- 752 名前:nobodyさん mailto:sage [2005/12/08(木) 06:40:50 ID:???]
- >749
これっていつごろできるの?
- 753 名前:nobodyさん mailto:sage [2005/12/08(木) 08:49:04 ID:???]
- けっこうagaviに似てる気がする
- 754 名前:nobodyさん [2005/12/08(木) 18:17:58 ID:v7tgLnK2]
- >>741
じゃあdispatchからのforwardってなんなの?
- 755 名前:nobodyさん mailto:sage [2005/12/08(木) 18:25:17 ID:???]
- >>754
「転送する」とか「回送する」とかの意味があるから、「処理をまわす」と いう意味合いじゃないの? つか、ここは英語のスレじゃないんだが。
- 756 名前:nobodyさん mailto:sage [2005/12/08(木) 22:50:03 ID:???]
- Zendフレームワークっていつリリースか明記してある?
- 757 名前:nobodyさん mailto:sage [2005/12/08(木) 23:13:00 ID:???]
- ±1.5ヶ月でね
- 758 名前:nobodyさん mailto:sage [2005/12/09(金) 12:10:21 ID:???]
- >>749
プレゼンが下手糞で途中で飽きた。 文章でまとまってるのないの?
- 759 名前:nobodyさん mailto:sage [2005/12/09(金) 12:21:49 ID:???]
- 流行りだからって何でもかんでもPodcastすればいいってもんでもないよね。
テキストなら大事なとこだけ拾い読みできるのに。
- 760 名前:nobodyさん mailto:sage [2005/12/09(金) 12:43:07 ID:???]
- メディアを云々する前にまずGoogleを覚えようぜ
- 761 名前:nobodyさん mailto:sage [2005/12/09(金) 14:16:53 ID:???]
- 誤爆ですか?
- 762 名前:nobodyさん [2005/12/09(金) 17:59:40 ID:kJFA21a1]
- Decorator使ってる時にリダイレクトしたら、
サブテンプレート作成中に処理がブチギレるよね。 ポストフィルタでリダイレクトすべきなのか。 そのあたりどうしてる?
- 763 名前:nobodyさん mailto:sage [2005/12/10(土) 14:39:54 ID:???]
- 質問です。
mojavi2でSmartyを使っています。 XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。 $lblocks = array(array('title' => 'エラー', 'content' => '<div><{$error}></div>')); $renderer->setAttribute('xoops_lblocks',$lblocks); すると<がサニタイズされて>に変換されて、html上表示されてしまいます。 サニタイズさせない方法ってあるでしょうか?
- 764 名前:nobodyさん mailto:sage [2005/12/10(土) 19:34:26 ID:???]
- >>763
$smarty->left_delimiter = '<{'; $smarty->right_delimiter = '}>'; てか、、マニュアル嫁
- 765 名前:nobodyさん mailto:sage [2005/12/10(土) 23:53:59 ID:???]
- >>764
>>763の >XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。 とあるように、その設定はXOOPSのテーマを使うために既にしています。 そのために<と>がサニタイズされて困っているんです。 その設定をしなければ、{と}だけで問題ないのです。 テーマ側に<{$error}>と書けば問題ないのですが、setAttributeで渡そうとすると サニタイズされてしまいます。
- 766 名前:764 mailto:sage [2005/12/11(日) 01:36:43 ID:???]
- >>763
>smartyのデリミタが<{と}>です。 これ読めてなかった… すまん、763
- 767 名前:762 mailto:sage [2005/12/11(日) 11:51:35 ID:???]
- リダイレクト後にexitしてるのが問題だっただけだった。
リダイレクトっていっても ヘッダに出力するだけで、 処理が止まるわけじゃないんだよな。
- 768 名前:nobodyさん mailto:age [2005/12/12(月) 19:50:27 ID:???]
- mojavi3つかってます。
modelで$this->getContext()->getRequest();するのと、 actionで$this->getContext()->getRequest();してモデルに渡すのと どっちがmvc的に正しいですか?
- 769 名前:nobodyさん mailto:sage [2005/12/12(月) 20:44:06 ID:???]
- >>768
モデルはコントローラやビューと結合していないのが理想なので、action で リクエストを取得して、それに応じて model に渡すのがよいと思う。
- 770 名前:nobodyさん mailto:sage [2005/12/12(月) 20:44:31 ID:???]
- 「結合してない」って言い方は悪いな。「疎結合」に言い替える。
- 771 名前:nobodyさん mailto:sage [2005/12/12(月) 20:44:42 ID:???]
- >>768
前者の方がmodelとactionの結合が疎になりやすい。
- 772 名前:768 mailto:sage [2005/12/12(月) 21:33:07 ID:???]
- どうもありがとうございました。
さっぱりしました。
- 773 名前:nobodyさん mailto:sage [2005/12/12(月) 23:43:46 ID:???]
- >>769
えええええええええええ? だったらなんでmodelに $this->getContext()->getRequest(); できる機能わざわざつけてあるのさ。 actionもMVCのmodelに相当するんじゃないの? model内で $this->getContext()->getRequest();とかやって、 actionでgetModelするのが普通だと思うが。 >>772よ。すっきりするのはまだ早い
- 774 名前:nobodyさん mailto:sage [2005/12/12(月) 23:50:24 ID:???]
- moja3て、Modelがあんだ〜
class HogeModel extends Model って感じ?
- 775 名前:nobodyさん mailto:sage [2005/12/13(火) 00:06:36 ID:???]
- >>773
> actionもMVCのmodelに相当するんじゃないの? 違うよ。controllerとmodelのアダプタ(アダプタパターンとは別の意味)。 controllerの一部をコマンドパターンとして抽出したとも見れる。 だから本当はactionはビジネスロジックを書くところじゃないんだけど、ロジックもそのまま書けてしまう手軽さは利点であり欠点でもあると思う。 requestをいじるのはcontrollerであるべきだと思うから俺はaction内でgetRequestして、相応のmodelを呼び出す派。
- 776 名前:768 mailto:sage [2005/12/13(火) 01:51:59 ID:???]
- やっぱり、model内で
$this->getContext()->getRequest(); のはなんか気持ち悪い。
- 777 名前:nobodyさん mailto:sage [2005/12/13(火) 01:56:13 ID:???]
- 俺もactionでrequest派。
最初はmodelでやっていたが そうなると、起点となるactionを見ただけでは どんなパラメータをいじっているのかが分からず、 流れを把握しにくくなったから。 またリクエストパラメータはどちらかといえば プレゼンテーション層に属するものなので プレゼンテーション層であるactionで受け取るのが理にかなっている とも思う。 バリデーションやコンバートはactionでやってるんだから ノータッチでmodelに渡していても疎結合とは言えないのでは? むしろactionで受け取ってmodelに渡すというレイヤパターンにした 方が疎結合といえる気がする。
- 778 名前:nobodyさん mailto:sage [2005/12/13(火) 10:18:09 ID:???]
- model で request 処理すると,model の unit test がやり辛くなると思う
それって context と request の両方を外部に依存することになるし action で request を処理しちゃえば model は request の「値」のみに依存することになり より疎結合になる # なんてことを周囲に喋ると「日本語喋れ」とか言われる罠w
- 779 名前:nobodyさん mailto:sage [2005/12/13(火) 11:29:59 ID:???]
- 記述が楽=疎結合じゃないんだよね
プロトコルを増やすわけだからむしろ記述は面倒くさくなりがち
- 780 名前:nobodyさん mailto:sage [2005/12/13(火) 14:13:53 ID:???]
- >>773
フレームワークが許容しているのと、理想的な設計との間には 隔たりがあるってことを理解するべき。 元の質問は > どっちがmvc的に正しいですか? ‥なので、MVC 的には action に依存しない方が理想だろうね。 >>778 のいう「unit test がやり辛い」ってのは、model がフレームワークと 密接に結合していて使い勝手が悪い証拠。結合度が高いので、再利用しずらい (再利用する時に、間接的にフレームワークにも依存することになる)。 model と action を分離しておけば、例えば、Web アプリとは別に DB に対する バッチ処理を PHP で書く必要がでてきた時に model を流用できる。 ただ、理想的な設計が、即座に現場で適用されるべきかというと、それは また別問題だけどな。
- 781 名前:nobodyさん mailto:sage [2005/12/13(火) 18:51:28 ID:???]
- >>780
いや、疎結合とかはlib側で考えるもんなんじゃないの? >フレームワークが許容しているのと、理想的な設計との間には >隔たりがあるってことを理解するべき。 許容じゃなくて、意図的に実装してるんだとおもうんだけど。 modelは明らかにactionと密接な連携を取るためのものだと思うし。 >model と action を分離しておけば、例えば、Web アプリとは別に DB に対する >バッチ処理を PHP で書く必要がでてきた時に model を流用できる。 その流用はlibでつくったもののがやりやすいよね。
- 782 名前:nobodyさん mailto:sage [2005/12/13(火) 18:54:29 ID:???]
- >>777
自分は逆にactionはどんなmodelを使ってるかの道しるべとして使ってるから 流れ把握は全然困らない。てかむしろしやすい。
- 783 名前:nobodyさん mailto:sage [2005/12/13(火) 18:59:51 ID:???]
- てか、そもそもlibの存在忘れて疎結合とか言ってない?
- 784 名前:nobodyさん mailto:sage [2005/12/13(火) 19:08:07 ID:???]
- libって何さ、ライブラリ?
- 785 名前:nobodyさん mailto:sage [2005/12/13(火) 19:10:01 ID:???]
- なにこの流れ。
スゴいお勉強になるんだけお。
- 786 名前:nobodyさん mailto:sage [2005/12/13(火) 19:11:38 ID:???]
- >>780の言う「許容」ってのはModel内で$this->getContext()->getRequest()できちゃうって話だよね?
>>781と微妙に噛み合ってないみたいだけど。 つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。 その意味ではMojaviの欠点の一つかもしれんな。 まあ>>773から反論がない限りはgetRequestはActionでやるべきってのは満場一致でしょ。 その結論に至る思考プロセスが個々人いろいろなのがおもしろいなw
- 787 名前:nobodyさん mailto:sage [2005/12/13(火) 19:18:52 ID:???]
- >>786
ん?かみ合ってないのか? >つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。 つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで? だったらかみ合ってないてのはわかるんだけど。 >>784 いや、libはautoloadで定義するやつよ。 こいつにこそ疎結合を求めるもんだとおもうんだけど…
- 788 名前:nobodyさん mailto:sage [2005/12/13(火) 19:21:40 ID:???]
- >>786
ちなみにlibとmodelはどう区切ってる?
- 789 名前:nobodyさん mailto:sage [2005/12/13(火) 19:34:56 ID:???]
- M2のactionChainがなくなったのも、デコレータだけじゃなくgetModelが
追加されたからなんだと思うし…
- 790 名前:786 mailto:sage [2005/12/13(火) 19:40:45 ID:???]
- >>787
いや、「かみ合ってない」って言葉が気に障ったなら気にしないでくれ。 疎結合の話に対してではなく、request云々の方で感じたこと。 > 許容じゃなくて、意図的に実装してるんだとおもうんだけど。 の部分ね。 modelとlibのどちらに疎結合を求めるかってのにはノーコメント。 俺の場合はlibにフレームワークのコンポーネントから外れた自分クラスとかは入れないんで。 多くはModelで、あとはSmartyの実装が微妙だったころに改造したViewとか。(最新バージョンがどうなってるのかはチェックしてない)。 > つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで? まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。 Modelの中でgetRequestを呼び出すのはせいぜいsetErrorするときだけだな。 >>788 前述の通り、俺的には「区切ってる」っていう感覚ではあまりない。 共通して使うものをlibに入れるだけ。
- 791 名前:nobodyさん mailto:sage [2005/12/13(火) 19:51:24 ID:???]
- フレームワークだから
ある程度の自由度を残してるのは当然ともいえるし どっちもアリっちゃアリだな。
- 792 名前:nobodyさん mailto:sage [2005/12/13(火) 19:54:09 ID:???]
- >>790
なるほど、そういうことね。確かに勘違いだわ。 でも、 >まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。 getUserもmodel内で使ってるんだ? ますますわからんくなってきた… ちなみに forum.mojavi.org/index.php?showtopic=1280&hl=getmodel ここにあるようなソースはアリなんだよね?
- 793 名前:nobodyさん mailto:sage [2005/12/13(火) 19:56:03 ID:???]
- context自体を渡すことがおかしいって言ってるのかと勘違いしてた。
- 794 名前:nobodyさん mailto:sage [2005/12/13(火) 19:59:28 ID:???]
- どっちにしても、自分の場合、actionはアダプタじゃなくてmodelで、
action内が複雑になりそうなときmodelに助けを求めるって感じでやってるから。 例えmodel内でgetRequestしても自然なつもりなんだけどなぁ
- 795 名前:768 mailto:sage [2005/12/13(火) 20:11:31 ID:???]
- じつはagaviでした。
agaviだとみんな食いついてくれないと思ったので. 結果予想以上に皆さんの意見が聞けてよかった。
- 796 名前:nobodyさん mailto:sage [2005/12/13(火) 20:13:34 ID:???]
- >>792
うーん、そこのソースのマズイ部分ってとりあえずどこ?w つーかgetUserをModelでやるのっておかしいかな?言われてみると少し迷うな。 ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。 もろにビジネスロジックかと思うんだが。 >>794 まあどういう風にやっても間違いってことはないと思う。 Actionにビジネスロジックを書いても結果的には「ロジックとデザインの分離」っていう大元の目的は達成されてるわけだし。
- 797 名前:nobodyさん mailto:sage [2005/12/13(火) 20:28:15 ID:???]
- >>795
みなさんというか、2、3人だと思うけどね。自分含めてw
- 798 名前:nobodyさん mailto:sage [2005/12/13(火) 20:31:02 ID:???]
- >>797
まーこの板はそういうとこだよなw
- 799 名前:nobodyさん mailto:sage [2005/12/13(火) 20:34:29 ID:???]
- >>796
>うーん、そこのソースのマズイ部分ってとりあえずどこ?w その感想自体が答えですw さんきゅw >ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。 まぁたしかにgetUserはその辺の機能があるからね。言われれば気持ちはわかる。 ちなみに開発人数はどれくらい? 自分のとこの場合人数が5人で中途半端だから、下手に縛り設けようにもうまく機能しないことが多いんだよね… フレームワークで許されている権利は使ってよしってことにしてるからってのもあるかも。
- 800 名前:nobodyさん mailto:sage [2005/12/13(火) 20:35:06 ID:???]
- userをmodelでいじるのは全然おかしくないと思う
つまるところセッションだし。 requestはブラウザから直接送られてくるデータだから、 いきなりmodelにいじらせるには生々しすぎる感じがするな。
- 801 名前:nobodyさん mailto:sage [2005/12/13(火) 20:40:49 ID:???]
- >>800
いや、それだと話がループする…
- 802 名前:nobodyさん mailto:sage [2005/12/13(火) 20:42:35 ID:???]
- >>800
そこはmodelで疎結合かどうかの話でしょ?
- 803 名前:nobodyさん mailto:sage [2005/12/13(火) 20:45:33 ID:???]
- >>800
>requestはブラウザから直接送られてくるデータだから、 おいおい大事なget,setAttributeはどこいった?
- 804 名前:nobodyさん mailto:sage [2005/12/13(火) 20:53:12 ID:???]
- ひょっとして、getRequest=ブラウザからのデータで話進められてたの?
- 805 名前:nobodyさん mailto:sage [2005/12/13(火) 21:18:59 ID:???]
- ああ、attribute忘れてたw
内部パラメータとしてのattributeならmodelでいじってもおかしくはないよね viewに渡すためのコンテナとしてなら、 modelから受け取ってactionでこめこめするのがいいと思う
- 806 名前:nobodyさん mailto:sage [2005/12/13(火) 21:31:18 ID:???]
- modelでごにょごにょしたものはactionにいくのか?
それともviewか?
- 807 名前:nobodyさん mailto:sage [2005/12/13(火) 21:38:24 ID:???]
- >>792-793
model に context が渡ってること自体が気に入らない。理由は >>796 の人が 述べてる理由が近いかな。 >>805 attribute も model じゃ触らない。ビジネスロジックはコントローラに封じ込 めるべきってのは大体の人が賛成してくれると思うけど、attribute を ビジネスロジックに一切関係ない使用例を見たことがない。もしあるなら 示してくれると、すごく嬉しい。 一般的(≒ Java の世界)にはそういう流れになってない? モデルは POJO (getter/setter だけのオブジェクト) にして、必要に応じて AOP でDAO や O/R マッピングしなさい、と。
- 808 名前:nobodyさん mailto:sage [2005/12/13(火) 21:51:40 ID:???]
- Javaとは言語仕様も実際の使われ方も違うのに、StrutsやIBMのホワイトペーパーと無理にあわせてもしょうがない。
- 809 名前:nobodyさん mailto:sage [2005/12/13(火) 21:55:50 ID:???]
- >>807
>model に context が渡ってること自体が気に入らない。 えぇ?なんで気に入らないのに >>796の人と同意なの? 根本的におかしいぞそれ。
- 810 名前:nobodyさん mailto:sage [2005/12/13(火) 21:56:59 ID:???]
- >>807
つまり、>>792のソースもおかしいってことだよね?
- 811 名前:nobodyさん mailto:sage [2005/12/13(火) 21:58:05 ID:???]
- >>806
actionにいってからviewじゃない? 直接viewにいくのはなんか気持ち悪いな >>807 Model=POPOなの? そこまで疎結合にするならModelをextendsする意味がないような… 俺はModel≒ビジネスロジックという認識だった。
- 812 名前:nobodyさん mailto:sage [2005/12/13(火) 22:00:37 ID:???]
- 一般的ではなくm3やagaviで開発する上での話をしているので、
>>807の話はお門違いなわけだが
- 813 名前:nobodyさん mailto:sage [2005/12/13(火) 22:04:25 ID:???]
- mvc的に正しいのはって聞いてるんだから御門違いじゃないだろう
- 814 名前:nobodyさん mailto:sage [2005/12/13(火) 22:05:40 ID:???]
- まぁ、お門違いじゃないにしてもおかしなこと言ってるのは確かだな
- 815 名前:nobodyさん mailto:sage [2005/12/13(火) 22:17:24 ID:???]
- 807は
モデルはフレームワーク自体からも疎結合である方がいいって意味だよね。 考え方は分からないでもないけど そこまで疎にする必要がはたしてあるのか… そもそもフレームワークを採用する時点で 全面的な依存を選択しているわけで、 モデルだけを疎結合することにどれほどの意味があるのか
- 816 名前:nobodyさん mailto:sage [2005/12/13(火) 22:17:28 ID:???]
- javaが一般的ってのも今は大分微妙になってるけどなぁ
- 817 名前:nobodyさん mailto:sage [2005/12/13(火) 22:19:09 ID:???]
- そもそもMVCモデルってそれぞれが密接に関連してるよなぁ
疎を考えるんなら777の言うようにレイヤーパターンで考えたほうが良いと思う MVCパターンをレイヤーパターンに置き換えると VCがプレゼンテーション層 Mがドメイン層とデータソース層 それぞれの層は独立していて別の層を知らないのが理想 actionはドメイン層とプレゼンテーション層の中間層かな? だからactionは プレゼンテーションからの入力(リクエストパラメータ)を受け取る ドメインロジックを呼び出す パラメータをドメインロジックに渡す ドメインロジックでゴニョゴニョした結果をプレゼンテーションロジックに渡す こんな流れがいいんじゃないかなぁ 結論、mojaviのModelクラスはイラネ
- 818 名前:nobodyさん mailto:sage [2005/12/13(火) 22:19:56 ID:???]
- >>815
あぁ、激しく同意… 多分agaviも>>815みたいな思想があってああいう設計になってるんだと思う。
- 819 名前:nobodyさん mailto:sage [2005/12/13(火) 22:23:54 ID:???]
- >>817
それだとactionがちょっとややこしくなっちゃわない?
- 820 名前:nobodyさん mailto:sage [2005/12/13(火) 22:33:04 ID:???]
- >>815
>>817 おまいらユニットテストしないんですか? >>819 むしろすっきりする actionにロジック書くわけじゃないからね あくまでAPIを呼び出して使うだけ mojavi的にはこんな感じ $id = $request->getParameter('id'); $service = new HogeService(); $hoge = $service->getHoge($id); $request->setAttribute('hoge', $hoge);
- 821 名前:nobodyさん mailto:sage [2005/12/13(火) 22:34:10 ID:???]
- >>817
最後の結論だけ良く分からない Model=ドメインロジックで問題なくね?
- 822 名前:nobodyさん mailto:sage [2005/12/13(火) 22:36:37 ID:???]
- >>820
autoload.iniが大変なことになりそうだ。
- 823 名前:nobodyさん mailto:sage [2005/12/13(火) 22:49:29 ID:???]
- >>820
それってデータベースコネクションはどこでどうやって呼出してんの?
- 824 名前:nobodyさん mailto:sage [2005/12/13(火) 23:00:01 ID:???]
- autoload.iniの項目が多いとやっぱり遅くなるの?
おれはできるだけ使わんやつは消しとるよ。
- 825 名前:nobodyさん mailto:sage [2005/12/13(火) 23:04:08 ID:???]
- >>821
概念的にはその通りだけど mojaviのModelクラスに依存したくないという意味でイラネということです >>822 それすごく悩んだけど 自前のクラスローダーで解決したお >>823 DB接続用クラスをSingletonで作成してどこからでも呼び出せるようにしてるよ DB::getConnection()みたいな感じで といってもどこからでも呼び出してるわけじゃないけどね
- 826 名前:nobodyさん mailto:sage [2005/12/13(火) 23:55:30 ID:???]
- >>825
なんかもうそれ自分ルールだらけじゃん… まぁ別にそれが悪いわけではないけど
- 827 名前:nobodyさん mailto:sage [2005/12/13(火) 23:58:11 ID:???]
- >>825
>自前のクラスローダーで解決したお それはautoload側をいじったのか、ロード関数みたいなのつくったのか
- 828 名前:nobodyさん mailto:sage [2005/12/14(水) 00:01:27 ID:???]
- 結論
>>825のやってることは、agaviのmodelで解決。 無駄な作業乙
- 829 名前:nobodyさん mailto:sage [2005/12/14(水) 00:34:57 ID:???]
- もしかしてSingletonModelってクラス?
Singletonごときでなんであんなものに頼らなきゃいけないのか疑問・・・。 しかもグローバルに呼び出しできなくなるし
- 830 名前:nobodyさん mailto:sage [2005/12/14(水) 00:41:56 ID:???]
- PHPでシングルトンってほぼ無意味だよな。
- 831 名前:nobodyさん mailto:sage [2005/12/14(水) 01:27:53 ID:???]
- >>830
まあどちらかと言うと、インスタンス2つ以上作ろうとする方が頭どうかしてるもんな。 Controllerとか。
- 832 名前:nobodyさん mailto:sage [2005/12/14(水) 01:43:05 ID:???]
- >>830
リクエスト毎にオブジェクトが生成->破棄されるという意味では無意味だな。 ログとかDBコネクションとかでは使えるけど、それもグローバル変数に入れとけばいいみたいな。
|

|