【PHP】フレームワークについて語るスレ【総合】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/08/10(水) 02:21:08ID:CBjrwwHdPhrame本家
http://phrame.sourceforge.net/
Mojavi Project
http://www.mojavi.org/
mojavijapan
http://mojavi.p0t.jp/
Agavi本家
http://agavi.org/
Agavi.JP
http://agavi.jp/
[ 日本発 ] Maple Project
http://kunit.jp/maple/
[ 日本発 ] Ethna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/ethna-tutorial-startup-practice1.html
※関連スレ
【PHP】フレームワークMapleに舌鼓
http://pc8.2ch.net/test/read.cgi/php/1122105465/
【PHPフレームワーク】Ethna【スケルトン自動作成】
http://pc8.2ch.net/test/read.cgi/php/1123070439/
PHPでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1113724557/
その他>>2-5参照汁
0709nobodyさん
2005/12/05(月) 18:28:40ID:???0710nobodyさん
2005/12/05(月) 18:33:47ID:???0711nobodyさん
2005/12/05(月) 20:31:13ID:???邪魔になるかなとは思いつつTylerにメールして進捗を聞いたりした
11月の中ごろにはあと2ヶ月くらいで出来るとのことだったがその後音沙汰がないのが心配だw
0713nobodyさん
2005/12/05(月) 20:33:25ID:???0714nobodyさん
2005/12/05(月) 23:03:05ID:???0715nobodyさん
2005/12/05(月) 23:06:57ID:???意味無いから試してないけどね。
0716nobodyさん
2005/12/06(火) 02:35:30ID:8b+BGlil現状ではメジャー技術を参考にしつつ自前開発するしかなさげ
だいたい大きな考え方はどのフレームワークにも共通するしね
0717nobodyさん
2005/12/06(火) 09:29:17ID:???オブジェクトの使い方とか理解しやすい。
0718nobodyさん
2005/12/06(火) 12:37:55ID:???書籍の紹介でも構わないのですが。
0719nobodyさん
2005/12/06(火) 12:43:24ID:???0721nobodyさん
2005/12/06(火) 13:20:37ID:???スレタイ読まないのはまあ百歩譲るとして他のレスちょこっと読めばわかるもんだろ普通
0722nobodyさん
2005/12/06(火) 15:21:22ID:???0723nobodyさん
2005/12/06(火) 15:27:03ID:???0724nobodyさん
2005/12/06(火) 15:34:12ID:???0725nobodyさん
2005/12/06(火) 15:35:58ID:???0726nobodyさん
2005/12/06(火) 15:40:42ID:???ttp://www.jca.apc.org/afghan-women/Special/WEDDING_BOMB.html
0727nobodyさん
2005/12/06(火) 15:44:53ID:???0730nobodyさん
2005/12/06(火) 20:10:08ID:???薄っぺらだから、把握するソースも少なくて済むし。
正式リリースはされてないけど、svnは着々と新しいクラスも
作られてる。
至れりつくせりなフレームワークは、いまのところ完成度が
低いものばかりなので。
pradoは完成度的には高いけど、XMLファイルの設定とか
結構面倒。
個人的にはsymfonyに期待してるんだけどね。
0731nobodyさん
2005/12/06(火) 22:51:06ID:???0732nobodyさん
2005/12/06(火) 23:32:14ID:???この、& の意味は何ですか?
0733nobodyさん
2005/12/06(火) 23:36:36ID:???0734nobodyさん
2005/12/06(火) 23:38:54ID:???0735nobodyさん
2005/12/06(火) 23:39:38ID:???0737nobodyさん
2005/12/07(水) 00:26:56ID:???0738nobodyさん
2005/12/07(水) 04:47:59ID:???dispatchで、辞書で調べると
「打ち負かす」とか「急送する」とかの意味らしい。
いまいち合ってない気がするけど
何か言われがあるのかな。
executeで良くね?と思うんだが。
0739nobodyさん
2005/12/07(水) 04:59:46ID:???Controllerは単にリクエストを適切なActionへ発送(dispatch)するからじゃね?
0740nobodyさん
2005/12/07(水) 05:49:46ID:???0741nobodyさん
2005/12/07(水) 06:05:54ID:???そこらのフレームワークはStrutsの影響だと思うけど、元々はOSのスケジューラがスレッドをCPUに割り当てるって意味。
MVCフレームワークではリクエストに応じてactionだのviewだのを割り当てるってこと(>>739はその意味で当たってると思う)。
loadなんかも「積む」って意味をこえて、メモリからレジスタにデータを読み込むって意味だったものが、ファイルなどの内容をメモリに読み込むって意味に転じて、果てにはWebサーバからブラウザにデータを読み込むってことにまで使われるようになった例だし。
0744nobodyさん
2005/12/07(水) 20:43:55ID:???翻訳してくれてる。
agaviユーザ多いかな。
http://www.geocities.jp/toyprog/
0746nobodyさん
2005/12/07(水) 22:03:43ID:???0747nobodyさん
2005/12/07(水) 22:05:08ID:???0749nobodyさん
2005/12/07(水) 23:23:39ID:???htp://www.phparch.com/webcasts/recordings/dec0205_zend.php
0751nobodyさん
2005/12/07(水) 23:53:53ID:???もれもそれ思ったよ!これからピィチピーって言おう!
0752nobodyさん
2005/12/08(木) 06:40:50ID:???これっていつごろできるの?
0753nobodyさん
2005/12/08(木) 08:49:04ID:???0754nobodyさん
2005/12/08(木) 18:17:58ID:v7tgLnK2じゃあdispatchからのforwardってなんなの?
0755nobodyさん
2005/12/08(木) 18:25:17ID:???「転送する」とか「回送する」とかの意味があるから、「処理をまわす」と
いう意味合いじゃないの?
つか、ここは英語のスレじゃないんだが。
0756nobodyさん
2005/12/08(木) 22:50:03ID:???0757nobodyさん
2005/12/08(木) 23:13:00ID:???0759nobodyさん
2005/12/09(金) 12:21:49ID:???テキストなら大事なとこだけ拾い読みできるのに。
0760nobodyさん
2005/12/09(金) 12:43:07ID:???0761nobodyさん
2005/12/09(金) 14:16:53ID:???0762nobodyさん
2005/12/09(金) 17:59:40ID:kJFA21a1サブテンプレート作成中に処理がブチギレるよね。
ポストフィルタでリダイレクトすべきなのか。
そのあたりどうしてる?
0763nobodyさん
2005/12/10(土) 14:39:54ID:???mojavi2でSmartyを使っています。
XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。
$lblocks = array(array('title' => 'エラー',
'content' => '<div><{$error}></div>'));
$renderer->setAttribute('xoops_lblocks',$lblocks);
すると<がサニタイズされて>に変換されて、html上表示されてしまいます。
サニタイズさせない方法ってあるでしょうか?
0764nobodyさん
2005/12/10(土) 19:34:26ID:???$smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>';
てか、、マニュアル嫁
0765nobodyさん
2005/12/10(土) 23:53:59ID:???>>763の
>XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。
とあるように、その設定はXOOPSのテーマを使うために既にしています。
そのために<と>がサニタイズされて困っているんです。
その設定をしなければ、{と}だけで問題ないのです。
テーマ側に<{$error}>と書けば問題ないのですが、setAttributeで渡そうとすると
サニタイズされてしまいます。
0767762
2005/12/11(日) 11:51:35ID:???リダイレクトっていっても
ヘッダに出力するだけで、
処理が止まるわけじゃないんだよな。
0768nobodyさん
2005/12/12(月) 19:50:27ID:???modelで$this->getContext()->getRequest();するのと、
actionで$this->getContext()->getRequest();してモデルに渡すのと
どっちがmvc的に正しいですか?
0769nobodyさん
2005/12/12(月) 20:44:06ID:???モデルはコントローラやビューと結合していないのが理想なので、action で
リクエストを取得して、それに応じて model に渡すのがよいと思う。
0770nobodyさん
2005/12/12(月) 20:44:31ID:???0772768
2005/12/12(月) 21:33:07ID:???さっぱりしました。
0773nobodyさん
2005/12/12(月) 23:43:46ID:???えええええええええええ?
だったらなんでmodelに
$this->getContext()->getRequest();
できる機能わざわざつけてあるのさ。
actionもMVCのmodelに相当するんじゃないの?
model内で
$this->getContext()->getRequest();とかやって、
actionでgetModelするのが普通だと思うが。
>>772よ。すっきりするのはまだ早い
0774nobodyさん
2005/12/12(月) 23:50:24ID:???class HogeModel extends Model って感じ?
0775nobodyさん
2005/12/13(火) 00:06:36ID:???> actionもMVCのmodelに相当するんじゃないの?
違うよ。controllerとmodelのアダプタ(アダプタパターンとは別の意味)。
controllerの一部をコマンドパターンとして抽出したとも見れる。
だから本当はactionはビジネスロジックを書くところじゃないんだけど、ロジックもそのまま書けてしまう手軽さは利点であり欠点でもあると思う。
requestをいじるのはcontrollerであるべきだと思うから俺はaction内でgetRequestして、相応のmodelを呼び出す派。
0776768
2005/12/13(火) 01:51:59ID:???$this->getContext()->getRequest();
のはなんか気持ち悪い。
0777nobodyさん
2005/12/13(火) 01:56:13ID:???最初はmodelでやっていたが
そうなると、起点となるactionを見ただけでは
どんなパラメータをいじっているのかが分からず、
流れを把握しにくくなったから。
またリクエストパラメータはどちらかといえば
プレゼンテーション層に属するものなので
プレゼンテーション層であるactionで受け取るのが理にかなっている
とも思う。
バリデーションやコンバートはactionでやってるんだから
ノータッチでmodelに渡していても疎結合とは言えないのでは?
むしろactionで受け取ってmodelに渡すというレイヤパターンにした
方が疎結合といえる気がする。
0778nobodyさん
2005/12/13(火) 10:18:09ID:???それって context と request の両方を外部に依存することになるし
action で request を処理しちゃえば model は request の「値」のみに依存することになり
より疎結合になる
# なんてことを周囲に喋ると「日本語喋れ」とか言われる罠w
0779nobodyさん
2005/12/13(火) 11:29:59ID:???プロトコルを増やすわけだからむしろ記述は面倒くさくなりがち
0780nobodyさん
2005/12/13(火) 14:13:53ID:???フレームワークが許容しているのと、理想的な設計との間には
隔たりがあるってことを理解するべき。
元の質問は
> どっちがmvc的に正しいですか?
‥なので、MVC 的には action に依存しない方が理想だろうね。
>>778 のいう「unit test がやり辛い」ってのは、model がフレームワークと
密接に結合していて使い勝手が悪い証拠。結合度が高いので、再利用しずらい
(再利用する時に、間接的にフレームワークにも依存することになる)。
model と action を分離しておけば、例えば、Web アプリとは別に DB に対する
バッチ処理を PHP で書く必要がでてきた時に model を流用できる。
ただ、理想的な設計が、即座に現場で適用されるべきかというと、それは
また別問題だけどな。
0781nobodyさん
2005/12/13(火) 18:51:28ID:???いや、疎結合とかはlib側で考えるもんなんじゃないの?
>フレームワークが許容しているのと、理想的な設計との間には
>隔たりがあるってことを理解するべき。
許容じゃなくて、意図的に実装してるんだとおもうんだけど。
modelは明らかにactionと密接な連携を取るためのものだと思うし。
>model と action を分離しておけば、例えば、Web アプリとは別に DB に対する
>バッチ処理を PHP で書く必要がでてきた時に model を流用できる。
その流用はlibでつくったもののがやりやすいよね。
0782nobodyさん
2005/12/13(火) 18:54:29ID:???自分は逆にactionはどんなmodelを使ってるかの道しるべとして使ってるから
流れ把握は全然困らない。てかむしろしやすい。
0783nobodyさん
2005/12/13(火) 18:59:51ID:???0784nobodyさん
2005/12/13(火) 19:08:07ID:???0785nobodyさん
2005/12/13(火) 19:10:01ID:???スゴいお勉強になるんだけお。
0786nobodyさん
2005/12/13(火) 19:11:38ID:???>>781と微妙に噛み合ってないみたいだけど。
つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。
その意味ではMojaviの欠点の一つかもしれんな。
まあ>>773から反論がない限りはgetRequestはActionでやるべきってのは満場一致でしょ。
その結論に至る思考プロセスが個々人いろいろなのがおもしろいなw
0787nobodyさん
2005/12/13(火) 19:18:52ID:???ん?かみ合ってないのか?
>つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。
つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで?
だったらかみ合ってないてのはわかるんだけど。
>>784
いや、libはautoloadで定義するやつよ。
こいつにこそ疎結合を求めるもんだとおもうんだけど…
0789nobodyさん
2005/12/13(火) 19:34:56ID:???追加されたからなんだと思うし…
0790786
2005/12/13(火) 19:40:45ID:???いや、「かみ合ってない」って言葉が気に障ったなら気にしないでくれ。
疎結合の話に対してではなく、request云々の方で感じたこと。
> 許容じゃなくて、意図的に実装してるんだとおもうんだけど。
の部分ね。
modelとlibのどちらに疎結合を求めるかってのにはノーコメント。
俺の場合はlibにフレームワークのコンポーネントから外れた自分クラスとかは入れないんで。
多くはModelで、あとはSmartyの実装が微妙だったころに改造したViewとか。(最新バージョンがどうなってるのかはチェックしてない)。
> つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで?
まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。
Modelの中でgetRequestを呼び出すのはせいぜいsetErrorするときだけだな。
>>788
前述の通り、俺的には「区切ってる」っていう感覚ではあまりない。
共通して使うものをlibに入れるだけ。
0791nobodyさん
2005/12/13(火) 19:51:24ID:???ある程度の自由度を残してるのは当然ともいえるし
どっちもアリっちゃアリだな。
0792nobodyさん
2005/12/13(火) 19:54:09ID:???なるほど、そういうことね。確かに勘違いだわ。
でも、
>まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。
getUserもmodel内で使ってるんだ?
ますますわからんくなってきた…
ちなみに
http://forum.mojavi.org/index.php?showtopic=1280&hl=getmodel
ここにあるようなソースはアリなんだよね?
0793nobodyさん
2005/12/13(火) 19:56:03ID:???0794nobodyさん
2005/12/13(火) 19:59:28ID:???action内が複雑になりそうなときmodelに助けを求めるって感じでやってるから。
例えmodel内でgetRequestしても自然なつもりなんだけどなぁ
0795768
2005/12/13(火) 20:11:31ID:???agaviだとみんな食いついてくれないと思ったので.
結果予想以上に皆さんの意見が聞けてよかった。
0796nobodyさん
2005/12/13(火) 20:13:34ID:???うーん、そこのソースのマズイ部分ってとりあえずどこ?w
つーかgetUserをModelでやるのっておかしいかな?言われてみると少し迷うな。
ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。
もろにビジネスロジックかと思うんだが。
>>794
まあどういう風にやっても間違いってことはないと思う。
Actionにビジネスロジックを書いても結果的には「ロジックとデザインの分離」っていう大元の目的は達成されてるわけだし。
0799nobodyさん
2005/12/13(火) 20:34:29ID:???>うーん、そこのソースのマズイ部分ってとりあえずどこ?w
その感想自体が答えですw さんきゅw
>ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。
まぁたしかにgetUserはその辺の機能があるからね。言われれば気持ちはわかる。
ちなみに開発人数はどれくらい?
自分のとこの場合人数が5人で中途半端だから、下手に縛り設けようにもうまく機能しないことが多いんだよね…
フレームワークで許されている権利は使ってよしってことにしてるからってのもあるかも。
0800nobodyさん
2005/12/13(火) 20:35:06ID:???つまるところセッションだし。
requestはブラウザから直接送られてくるデータだから、
いきなりmodelにいじらせるには生々しすぎる感じがするな。
0803nobodyさん
2005/12/13(火) 20:45:33ID:???>requestはブラウザから直接送られてくるデータだから、
おいおい大事なget,setAttributeはどこいった?
0804nobodyさん
2005/12/13(火) 20:53:12ID:???0805nobodyさん
2005/12/13(火) 21:18:59ID:???内部パラメータとしてのattributeならmodelでいじってもおかしくはないよね
viewに渡すためのコンテナとしてなら、
modelから受け取ってactionでこめこめするのがいいと思う
0806nobodyさん
2005/12/13(火) 21:31:18ID:???それともviewか?
0807nobodyさん
2005/12/13(火) 21:38:24ID:???model に context が渡ってること自体が気に入らない。理由は >>796 の人が
述べてる理由が近いかな。
>>805
attribute も model じゃ触らない。ビジネスロジックはコントローラに封じ込
めるべきってのは大体の人が賛成してくれると思うけど、attribute を
ビジネスロジックに一切関係ない使用例を見たことがない。もしあるなら
示してくれると、すごく嬉しい。
一般的(≒ Java の世界)にはそういう流れになってない?
モデルは POJO (getter/setter だけのオブジェクト) にして、必要に応じて
AOP でDAO や O/R マッピングしなさい、と。
0808nobodyさん
2005/12/13(火) 21:51:40ID:???0809nobodyさん
2005/12/13(火) 21:55:50ID:???>model に context が渡ってること自体が気に入らない。
えぇ?なんで気に入らないのに
>>796の人と同意なの?
根本的におかしいぞそれ。
■ このスレッドは過去ログ倉庫に格納されています