【PHP】フレームワークについて語るスレ【総合】
レス数が950を超えています。1000を超えると書き込みができなくなります。
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参照汁
0853nobodyさん
2005/12/15(木) 02:23:24ID:???この公式サンプルも、全然>>839みたいな定義になってねぇし
0854839
2005/12/15(木) 03:13:21ID:???たしかにそうだね。それが
> つーか今読み返してみたら、Sean Kerr的にはActionでビジネスロジックもありっていうスタンスっぽいなw
と言った理由なんだけど。
ただ、俺自身はドメイン層の処理はModelでやる方針でやってるって話。
Actionでドメイン層・データソース層に手を出すのも利点があるなら大いに結構だとは思うよ。
>>853
えーっと一応言っておくけど>>839は設計(or実装)方針の話ね。
(それまでの議論の内容も多少加味したつもりなんだが偏見もあるかも・・・)
あと、そこのサンプルは>>844の「ユーザーアカウント」にあたるものをModelとして抽出せずにActionで済ませちゃってるんだね。
だから839と違って見えるってのも無理はないかも。
まあロジックが複雑になってきたらそんなことは言ってられないので俺は認証用に作ったModelを再利用してるよ。
必要ならそのModelをもう一段継承してカスタマイズとかできるのでそこそこ便利だし。
0855nobodyさん
2005/12/15(木) 03:28:55ID:???同じ気持ちでしたが、
http://www.microsoft.com/japan/msdn/practices/type/Patterns/enterprise/DesMVC.asp
ここを読んでみて>>841の言ってることがよくわかりました。
MVCの図にあるとおり
>ビューとコントローラの両方がモデルに依存していることに注意してください。ただし、モデルはビューとコントローラのどちらにも依存していません。
モデルは両方に依存していないものなんだね。
そう考えるとたしかに>>839の言ってる図は話にならない。
でも、それを言い出すとAgaviの設計自体がおかしいことになるね。
0856839
2005/12/15(木) 03:51:45ID:???たぶんUMLを見慣れてる人が多いんだろうから誤解を与えたかもしれないけど、>>839は「依存関係」を表してるつもりじゃなかったんだなぁorz
Controller→Action→Controller→Viewってのは制御が移る順番。
他の⇔はデータの受け渡しであって、基本的にはメソッドの呼び出し+リターンなので制御が移る順番としても解釈できるかも。
>>855が依存関係の話を持ってきてくれたのでそれも考慮すると、⇔の矢印をすべて外側向きに変えたら少しはましになるかな?
矢印の意味は
・依存してる側→依存されてる側
・呼び出し側→呼び出される側
という関係で。(唯一Action→Controllerの部分だけリターンなので矢印の色でも変えてくださいw)
「ビジネスロジック」って言葉は俺も再考する必要があるかも。
>>846をもうちょっと咀嚼してみる。
0857nobodyさん
2005/12/15(木) 03:53:25ID:???こういうの見るとますますわからんくなる…
0858nobodyさん
2005/12/15(木) 04:01:35ID:???保守性の高いコードってWebアプリケーションなら結構つくれちゃうからなぁ…
ビジネスロジック云々より、ビジネスや運営自体について考えてたほうがよっぽど金になる
0859839
2005/12/15(木) 04:09:49ID:???俺的もそう思う。どっちでもいーじゃんおまいらw、と
でも「間違っている」というつっこみをたくさんいただいたので、ヘコみつつ悪戦苦闘中であります。
0860nobodyさん
2005/12/15(木) 04:22:02ID:???マジでAgaviのView周りってModelに依存性あるの?
ステートレスなWebアプリでは切り離されてるのが当たり前だと思ってたけど。
アクティブモデルにせよオブザーバはかませるっしょ
0861nobodyさん
2005/12/15(木) 04:40:08ID:???コントローラかアクションにぶらさげることは出来るね
前者はコントローラがMediator(と言ってもモデルかアクションから
データを受け渡すだけ)となり、後者ではアクションはコマンドオブジェクト
(ビジネスロジックとViewの呼び出しをカプセル化したもの)ということになる
どっちもパターンとしてはMVCとは呼ばないんだろうけど
http://www.martinfowler.com/eaaCatalog/applicationController.html
Viewがモデルに依存したほうがいいかアクションに依存したほうがいいか
まとまった見解ってある?
0862nobodyさん
2005/12/15(木) 04:43:36ID:???Agavi自体の仕様では依存性は発生しないよ。Modelは一つもなくても動くし。
でもModelを使った時点で依存はゼロではないと思われ。
「切り離す」ってのはいわゆる疎結合にするって意味だとは思うけど、元々依存してしまうものだからせめて疎結合にしましょうって感じじゃなかったっけ?
>>855の言ってるのは、逆向きの依存はゼロってことでしょう。
「Viewを変更したらModelが動かなくなりました」とかしゃれになんないし。
でもModelを変更したらViewに支障が出るのは仕方ない。
それでも最小限にしましょうってのが疎結合だと思う。
オブザーバはContextのことでおkかな?
0863nobodyさん
2005/12/15(木) 05:25:53ID:???結合の程度というようなファジーなものは存在しない
Framework界隈で依存性といったらこれのことだと思う
0864nobodyさん
2005/12/15(木) 05:52:18ID:???疎結合って結合の程度がゆるいことじゃないの?
つーかどのレスに対してなのか反論なのか何なのかわからんな。
0865863
2005/12/15(木) 06:11:06ID:???結合にはもちろん程度があるよ
しかし依存性にはそういうものは無くゼロイチだということを言ってみた
>>860と>>862の愛でどうも考えている依存性が違って
かみ合ってないように見えたので
0866nobodyさん
2005/12/15(木) 06:12:18ID:???○ 間で
すまん
間違ったものを芽生えさせた
0867nobodyさん
2005/12/15(木) 06:12:22ID:???Modelにするにせよ別もんにしてつくるにしても、
初期のViewだけじゃなにもできんじゃん。
ごてごてタグとテンプレートと定数混ぜることになってしまう。
その辺のモデルもつくるでしょ?ふつう
0868nobodyさん
2005/12/15(木) 06:16:08ID:???ビュー内でモデルは呼び出したくない
0870862
2005/12/15(木) 06:21:54ID:???そかそか。曖昧な言い方ですまんかった。
基本的には「依存性はゼロイチ」ってのは同意だよ。
だから>>860への答えはViewからModelへの依存性は「あり」。
ただ「切り離されてるのが当たり前」って表現をしてたので、862で「それは疎結合のことであって≠依存性だよね」っていう意味で言った。
>>868
実際にはそうだよなw
0872nobodyさん
2005/12/15(木) 09:58:57ID:???モデルからUserにアクセスする必要がある時はどうやってるの?
0874nobodyさん
2005/12/15(木) 10:21:58ID:???0876nobodyさん
2005/12/15(木) 11:14:48ID:???フレームワークに依存しない設計がいまいちイメージしにくいな
0877nobodyさん
2005/12/15(木) 11:38:55ID:???もうあんな設計は古いって…。
0878nobodyさん
2005/12/15(木) 11:43:23ID:???0879nobodyさん
2005/12/15(木) 11:51:42ID:???0880nobodyさん
2005/12/15(木) 11:55:01ID:???影響受けてるフレームワークいっぱいあるしな
0881nobodyさん
2005/12/15(木) 14:16:48ID:???0882nobodyさん
2005/12/15(木) 15:21:47ID:???0883nobodyさん
2005/12/15(木) 21:48:05ID:???ValidateやらFilterは自作になるけど、結構いいと思う。
0884nobodyさん
2005/12/15(木) 23:18:51ID:???プロダクトとしてリリースするなら、自分のところできちんと性能評価をやった方がいいよ。
0885nobodyさん
2005/12/16(金) 00:48:04ID:???0886nobodyさん
2005/12/16(金) 01:35:11ID:???0887768
2005/12/16(金) 09:02:11ID:???0888nobodyさん
2005/12/16(金) 09:14:05ID:???0889nobodyさん
2005/12/16(金) 18:13:50ID:???エスパー募集してもよろしいでしょか?
0892nobodyさん
2005/12/17(土) 00:42:49ID:???0893nobodyさん
2005/12/17(土) 01:13:05ID:???多少質問あったほうが盛り上がるからいいんで内科医?
>>892
基本的にvalidationはactionでやり、DBの扱いはmodelでやってるけど、このスレ読んでたらもしかしたらactionでやったほうがいいのかな?とも思えてきた。
0895nobodyさん
2005/12/17(土) 01:39:26ID:???0896nobodyさん
2005/12/17(土) 01:50:31ID:???modelを作るほど複雑でなく(単なるログとか)、
また他のアクションで同じ機能を利用しないならアクションで済ませてしまってもいいとは思う。
0897nobodyさん
2005/12/17(土) 02:02:35ID:???modelでDBに登録するとしたらサニタイズもmodelでやるってことになる?
でないとmodelがactionに依存してしまう気がするんだけど。
0898nobodyさん
2005/12/17(土) 09:32:09ID:???サニタイズはactionでやるべきだね。
0899nobodyさん
2005/12/17(土) 09:36:15ID:???モデルは自身のためのサニタイズは自身で持つ
いずれも定義は括りだす
0900nobodyさん
2005/12/17(土) 09:39:35ID:???てことか。
実際どこで何をやるんだろ。
0901nobodyさん
2005/12/17(土) 10:04:30ID:???てことはActionでDBに書き込むのが正しい?
0902nobodyさん
2005/12/17(土) 10:55:36ID:???0903nobodyさん
2005/12/17(土) 11:29:14ID:???0904nobodyさん
2005/12/17(土) 12:05:30ID:???0905nobodyさん
2005/12/17(土) 12:12:34ID:???答えが返ってくる時もあれば返ってこない時もあるけど
0907nobodyさん
2005/12/17(土) 13:24:57ID:???0908nobodyさん
2005/12/17(土) 19:16:29ID:???http://www.agavi.org/
0911nobodyさん
2005/12/17(土) 22:24:03ID:???0913nobodyさん
2005/12/18(日) 03:09:01ID:???危機管理意識なしでエラーメッセージ垂れ流しっていうのは
あまりよろしくないよなぁ。
そもそも確認すらしないのかと。
0914nobodyさん
2005/12/18(日) 06:17:14ID:???0915nobodyさん
2005/12/18(日) 09:07:58ID:???return true
と
filters.iniで以下設定
[BasicSecurityFilter]
class = "BasicSecurityFilter"
param.comment = "On"
と挙動が違う。
filters.iniで設定すると、controllerの$this->loadModuleFilters($filterChain);
でBasicSecurityFilterがregistされ
BasicSecurityFilterクラスの$controller->forward(LOGIN_MODULE, LOGIN_ACTION);
でLOGIN_MODULEのフォワード無限ループになります。
http://ozaki.kyoichi.jp/mojavi3/authfilter.html
ここのサイトではちゃんとできているようだけど、
同じようなトラブルにあっている方はいますか?
0916nobodyさん
2005/12/18(日) 11:43:36ID:???BasicSecurityFilterの使用はsettings.iniのUSE_SECURITYで決定する
filters.iniに設定する必要はないよ
0917nobodyさん
2005/12/18(日) 14:07:02ID:???0918nobodyさん
2005/12/18(日) 21:17:43ID:???ちがうでしょ。
controllerでは下のように条件分岐している。
if (USE_SECURITY && $actionInstance->isSecure()) {
0920nobodyさん
2005/12/18(日) 22:12:04ID:???なにが違うんだ?
USE_SECURITY && $actionInstance->isSecure()で
filterChainにSecurityFilterが登録されるわけだが。
なんでfilter.iniで再登録する必要がある?
$actionInstance->isSecure()の意味解ってないだろ
0922nobodyさん
2005/12/18(日) 23:39:16ID:???再登録以前に、filters.iniにBasicSecurityFilterを登録したら
未認証時に遷移するはずのLoginAction自体にもBasicSecurityFilterが適用されて強制無限ループ。
正確には、forwardが20回再帰すると例外投げるから無限ループにはならないみたいだけど。
すみませんでした。
0923nobodyさん
2005/12/18(日) 23:54:26ID:???BasicSecurityFilterは$this->loadModuleFilters($filterChain);
でregistすると、ループする。
(Default_LoginActionにisSecure ()適用したと同等の現象)
いちいちactionでisSecure ()をtrueに書き直すのめんどくさい。
何とかなりませんか
0924nobodyさん
2005/12/19(月) 17:48:44ID:???0925nobodyさん
2005/12/19(月) 18:34:07ID:???0926nobodyさん
2005/12/19(月) 21:25:50ID:???0927nobodyさん
2005/12/19(月) 21:49:37ID:???変だからやってる香具師いるかなぁと
普通ならPEAR::DB+DB_Objectだろうけど、PEAR::DBってadodbより遅いって言うし。
0928nobodyさん
2005/12/19(月) 21:53:15ID:???0930nobodyさん
2005/12/19(月) 22:08:30ID:???DB_DataObjectは確かに内部でDBを使っているが、
基本的に抽象レイヤーと組み合わせて使うもんじゃないぞ
DB_DataObjectのソースに手を入れるなら別だけど
0931nobodyさん
2005/12/19(月) 22:42:40ID:???0933nobodyさん
2005/12/20(火) 02:33:17ID:???PDO使いたいけどPHP5.1で動かないアプリがあるからムリポ
DB_DataObjectで楽するかadodbで早さを取るか迷い中
0934nobodyさん
2005/12/20(火) 12:06:31ID:???やる気ねーーー
0935nobodyさん
2005/12/20(火) 14:49:28ID:???0937nobodyさん
2005/12/20(火) 16:02:57ID:???0938nobodyさん
2005/12/21(水) 09:02:46ID:???0939nobodyさん
2005/12/21(水) 10:14:48ID:???今、Mojavi勉強中なんです。 ながら気になってます。
0940nobodyさん
2005/12/21(水) 11:02:52ID:???0941nobodyさん
2005/12/21(水) 15:41:11ID:???Mojavi覚えるの大変なんですが、何日くらいで慣れますかね?
0943nobodyさん
2005/12/21(水) 19:57:44ID:???オブジェクトを理解するのにちょうど良い。
0944nobodyさん
2005/12/21(水) 21:52:51ID:???0945nobodyさん
2005/12/21(水) 22:03:21ID:???0946nobodyさん
2005/12/21(水) 22:51:55ID:???0947nobodyさん
2005/12/21(水) 23:05:54ID:???0948nobodyさん
2005/12/22(木) 00:27:18ID:???アップデートしてそのまま使えるんか
0949nobodyさん
2005/12/22(木) 12:52:20ID:???結局Mojavi2で落ち着きました。 その後はまた考えます。
0950nobodyさん
2005/12/22(木) 18:28:57ID:???後々のこと考えるとphp5とm3の方がいい。
0951nobodyさん
2005/12/23(金) 02:00:04ID:???php4使うぐらいならフレームワーク使わないでいいと思う。
どうせ将来性ないし。
0952nobodyさん
2005/12/23(金) 04:49:25ID:???今のようなPHPの使われ方なら、PHP4で問題ない。
レス数が950を超えています。1000を超えると書き込みができなくなります。