【PHP】Phrameを使う【フレームワーク】

このエントリーをはてなブックマークに追加
939nobodyさん:2005/08/04(木) 22:30:05 ID:???
MojaviはActionからViewに成果を引き渡すのにもRequestを使っている。
その役目を果たすコンテナとしてResultって話。
940nobodyさん:2005/08/05(金) 02:33:38 ID:???
オリフレにしたら速度3倍くらいになった。
てかSmarty遅っ!!
遅いとは思っていたが数字で比較すると遅さを再確認した。
キャッシュ以前に、オブジェクトとしてデカすぎるもんな。
941nobodyさん:2005/08/05(金) 02:35:05 ID:???
>>940
何からオリフレにしたの?M2?
942nobodyさん:2005/08/05(金) 02:38:21 ID:???
ちっこいプレゼンテーションロジックオブジェクトを
テンプレートの荒野に解き放てば
一寸法師も真っ青な獅子奮迅の大活躍をしてくれるわけで。
Smartyなんていらねーんだよディック野郎( ゚д゚)、ペッ
943nobodyさん:2005/08/05(金) 02:39:13 ID:???
>>941
M2+Smarty
944nobodyさん:2005/08/05(金) 10:20:31 ID:???
caching ≠ compile
Smartyスレで暴れてたやつか?

オレは速度を最優先するならフレームワークなんか使わない。
945nobodyさん:2005/08/05(金) 10:53:35 ID:???
>943
Smartyやめて自前でテンプレートシステム書いたんですか?
946nobodyさん:2005/08/05(金) 11:12:49 ID:???
DB処理 > Smartyのオーバーヘッド ならキャッシュ使えば体感は早いよ。

キャッシュ処理自体を自前で書けばもっと早いだろうけど、めんどくさ。
947nobodyさん:2005/08/05(金) 13:09:12 ID:???
キャッシュとかサブテンプレートとか
Smartyの特徴的な機能って
自分でやってみればわりと簡単に実装できるよ
もともとphpに、出力をバッファリングしたり
それを変数に入れたりするコマンドがあるからね。
既製品は多くの人の要請に答えざるを得ないから、
宿命的に重くなっていく。
イラナイ機能のためにオーバーヘッドが生まれるのは
俺は好きくないな。
ただ間違いなく勉強にはなるので、やっておいて損はないとは思うが。
948nobodyさん:2005/08/05(金) 13:31:58 ID:???
>>946
Cache::Liteとか使うとラクだよ。
949nobodyさん:2005/08/05(金) 14:49:30 ID:???
つーか、数十万アクセス/dayのサイトをM2+smarty+adodbで作っても大して重くならないのに
オーバーヘッドがとか軽くとか言ってる方っていったいどれだけ大規模な案件を抱えていらっしゃるんですか?
950nobodyさん:2005/08/05(金) 15:28:15 ID:???
Smartyのマニュアルのキャッシュの項読んでみなよ。
あれ自分で実装するの?メンテも自分で?勘弁してよ。
951nobodyさん:2005/08/05(金) 18:23:04 ID:???
>949
それは君の組み方が上手いのもあると思う。
他にデータ量とか、マシンスペックとかによっても体感の重さは変わってくるし。
952nobodyさん:2005/08/06(土) 02:49:51 ID:???
いろいろ実装していった結果…
非SmartyはSmartyの10%程度しか速くならないことが分かった
結局Smartyに戻したよ orz
953nobodyさん:2005/08/06(土) 03:28:19 ID:???
テンプレートだけ速くしても他は変わらんからね。
個人でやるならオレオレフレームワーク+オレオレテンプレートエンジンで
カリカリにチューニングして自己満足も良いけど
保守性を考えたら出来合いのある程度普及してるやつ使った方が吉。
多くの場合、いちばんコストがかかるのはビジネスロジックなんだし。

サーバや回線のスペックは富豪的に解決する方向で。
954nobodyさん:2005/08/06(土) 15:28:01 ID:???
富豪マインド(・∀・)イイ!
955nobodyさん:2005/08/06(土) 18:23:36 ID:???
確かに、
金かけるだけでいい部分は、金出しときゃいいんだよな。
956nobodyさん:2005/08/06(土) 18:40:01 ID:???
一番コストがかかるのは教育/学習だったりな
957nobodyさん:2005/08/06(土) 20:32:22 ID:???
このスレももうすぐ終わりだな。
次スレはここがモジャスレになるのかな。
958nobodyさん:2005/08/06(土) 23:50:33 ID:???
ツーか俺様テンプレートとか俺様フレームワークって根本的に意味無い。
俺様しか使わないなら普通に書きまくったほうが早いに決まってる。
959nobodyさん:2005/08/07(日) 00:19:15 ID:???
まあフレームワークは他人に使ってもらうことを前提としたものだが
フレームワーク的な手法(フロントコントローラパターン、MVCパターン等)は
保守性を桁違いに上げるから無意味とは言えないだろう。
960nobodyさん:2005/08/07(日) 00:39:30 ID:???
>959
そうだね。
でも速度重視で俺様やるくらいなら、Cで書いたほうがよっぽど良い。
そんな俺はCなんてここ数年触ってない。
学生時代は気が狂ったようにCでガリガリコーディングしてたのに。
961nobodyさん:2005/08/07(日) 17:38:15 ID:???
>>960
> でも速度重視で俺様やるくらいなら、Cで書いたほうがよっぽど良い。

CでCGI書いちゃったら結局はモジュール版より遅くなりそう。
PHPはZend Optimizer使うとさらに速くなるのかな?よく知らないけど。
ま、アルゴリズムが複雑になってくるとCの方が圧倒的に速いだろうけど、所詮Webだしなぁ。

>>959は同意。
962nobodyさん:2005/08/08(月) 01:36:58 ID:???
>>958の言ってるのは、実行速度が速いんじゃなくって、開発速度のことだろ。
963nobodyさん:2005/08/08(月) 05:34:58 ID:???
http://agavi.org/
これ結構よさげ
964nobodyさん:2005/08/08(月) 06:31:34 ID:???
>>963
どういうところをよさげだと思ったのかぐらい書いてくれよー

次スレどうすんの?
PHPフレームワーク総合?
テンプレ作成よろ>1
965nobodyさん:2005/08/08(月) 07:45:56 ID:???
966nobodyさん:2005/08/08(月) 08:54:19 ID:???
>>965
d
たしかによさげだね
967nobodyさん:2005/08/08(月) 12:36:10 ID:???
>>961
> CでCGI書いちゃったら結局はモジュール版より遅くなりそう。

つ [ FastCGI ]
968nobodyさん:2005/08/08(月) 13:44:01 ID:???
>>963
お、いいねぇ!
さようならM3・・・
969nobodyさん:2005/08/08(月) 13:58:03 ID:???
フレームワークの質問ってここでもいいんでしょうか?
Ethnaで認証を作ってるんですけど、

コントローラ→アクション→処理クラス→アクション→ビューという
遷移ですよね?
アクションの中で具体的な処理を書くのはダメみたいなので、
処理クラスを作ってそこで認証の処理をしてるんですけど
そこで、認証してユーザIDを表示したいときには、
呼び出し元のアクションクラス内でSmarty用の値設定をするのか
処理クラスのところで、Smarty用の値設定をするのかどちらが
いいのでしょうか?

PHP自体もよくわかってないところが結構あるので、
くだ質の方のネタかもしれませんけど、よろしくお願いします<m(_)m>
970nobodyさん:2005/08/08(月) 15:04:49 ID:???
アガビのAPI見たらM3とほとんど同じに見えるけど
アドバンテージって何?
開発停止していたM3の続きを作ったってことかい?
971nobodyさん:2005/08/08(月) 15:14:23 ID:???
そろそろM3+PHP5以降するかと考えてたから助かった。
972nobodyさん:2005/08/08(月) 18:17:07 ID:???
>>970
ほとんど同じなのもメリットのひとつだし、細かいところ良くなってるよ。
例えば、今までたびたび問題になってたクラスの2重定義の問題も、モジュール名を頭につけることで解決されてる。
ファイル名にはつけなくて済むので名前はそこまで長くならないし。
でもやっぱり一番いいのは、M3と違って「ちゃんと開発進める気がある」ということ。
973nobodyさん:2005/08/08(月) 18:52:20 ID:???
俺はまだオリフレでいいや
今はどれも依存できる程熟成してないから
考え方をパクってスキルだけ付けといて
974nobodyさん:2005/08/08(月) 19:20:06 ID:???
俺はagaviでいいや
自分で作ってたら、あとでいいものが出回ったとき効率悪いし
975nobodyさん:2005/08/08(月) 20:14:16 ID:???
agaviは名前が良くないな。
Mojaviが広まったのは名前の良さもあると思う。
976nobodyさん:2005/08/09(火) 00:11:15 ID:3zLdS2yd
Smarty と Flexyどっちが早いんだ?

977nobodyさん:2005/08/09(火) 02:12:52 ID:???
>>969
Ethna使ってないけどアクションクラス(かビュー)で設定するもんじゃないのかな。
よく知らないけどEthnaはアクションフォームとかを使うんじゃないの?
リクエストパラメータしか使えないのかな。
978nobodyさん:2005/08/09(火) 02:36:50 ID:???
>>975
AgaviとMojaviを比べたときに、Mojaviはそんなに良い名前なのか・・・?
979nobodyさん:2005/08/09(火) 02:49:42 ID:???
「jav」あたりがJavaっぽくて、JavaにあこがれるPHP使いの心をわしづかみ!
980nobodyさん:2005/08/09(火) 02:55:31 ID:???
Javaにあこがれるくらいなら覚えたら済む話ジャマイカ
どうせデザパタやらはPHP5でこれから必須になるだろうし。
981nobodyさん:2005/08/09(火) 03:53:28 ID:???
いやPHP5が必須じゃないから。
982nobodyさん:2005/08/09(火) 07:01:53 ID:???
Mojaviでグローバルフィルタを実行したくない時は
どうすりゃいいの?
Ajax用のJSを吐く時等
ExecutionTimeFilterとかは実行したくないんだけど
983nobodyさん:2005/08/09(火) 07:14:05 ID:???
>>982
そもそも実行したくない場合があるものをグローバルフィルタにしてること自体おかしいのだが
984nobodyさん:2005/08/09(火) 07:19:38 ID:???
オリフレでActionとVIewを一つのファイルにまとめて
Viewをなくしたらかなり楽ちんになったよ
ビジネスロジックはLogicが担当するし
同じプレゼンテーション層のActionとViewを分けるのは
冗長と思う。
ビジネスロジックをActionに書くやり方なら
きっちり分けないと気持ち悪いけど。
あとMapleのConverterも取り入れてこれまた便利。
ConverterもValidatorも、Actionからは
設定の連想配列を返せばいいだけ。
後はContorollerの方で各オブジェクトを勝手に作ってくれる。
こんなことが出来るのもオリフレだけ。
オリフレ最高。
985nobodyさん:2005/08/09(火) 07:50:00 ID:???
うpきぼn
986969:2005/08/09(火) 08:24:48 ID:???
>>977
レスdクス。
じゃあ処理クラスのところでゲットした値を何かの変数に
いれといて、Viewで設定がいいのかな
987nobodyさん:2005/08/09(火) 10:30:21 ID:???
>>982
ExecutionTimeFilterを実行したくないならwebapp/config/filters.iniの該当項目をコメントアウトしたら?
自作フィルタで特定のアクション等に対して実行したくないものは、そのフィルタの中でふるいわけるとか。
そもそもExecutionTimeFilterって、「フィルタの使い方のお手本」的な存在だと思ってた。
まあ時間測定もそれなりの意味はあるけど。
988nobodyさん
>>987
やっぱりフィルタ内で判断するのがいいかな。
ExecutionFilterは処理ごとの重さが判断できるから
開発中は付けてるよ。
DB接続のコストって結構高いんだなーとか思いながら見てる。