トップページ⇒php
1001コメント302KB

[PHP]フレームワークについて語るスレ2[総合]

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/12/29(木) 18:03:44ID:PQZNoJbD
::フレームワーク一覧::
■Phrame
http://phrame.sourceforge.net/
■Mojavi Project
http://www.mojavi.org/
■Agavi
http://agavi.org/
■[ 日本発 ] Maple Project
http://kunit.jp/maple/
■[ 日本発 ] Ethna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/ethna-tutorial-startup-practice1.html
■[ 日本発 ] guesswork
http://www.guesswork.jp/
■Biscuit
http://bennolan.com/biscuit/
■PHP on TRAX
http://phpontrax.com/
■Web Application Component Toolkit (WACT)
http://www.phpwact.org/
■symfony
http://www.symfony-project.com/
■XOAD
http://wiki.xoad.org/index.php?title=Wiki_Home
■[ 日本発 ] pokox
http://www.glamenv-septzen.net/pukiwiki/index.php?pokox
■[ 日本発 ] 速構Web Framework
http://www.pm9.com/newpm9/itbiz/php/framework/
■CakePHP
http://cakephp.org/
0041nobodyさん2006/01/01(日) 23:54:37ID:???
商用利用時のライセンスがややこしそうだけど、そこさえクリアできればよさそうだね。
0042nobodyさん2006/01/02(月) 03:04:07ID:???
PHPはクラスライブラリが整備されないからね。いつまでたっても。
0043nobodyさん2006/01/02(月) 03:33:36ID:I7zXcpPd
>>40
どのへんが画期的だったのか良ければ教えて
0044nobodyさん2006/01/02(月) 09:40:50ID:???
そんなどこの馬の骨かもわからないフレームワークなんか
誰も使わないと思うよ。
0045nobodyさん2006/01/02(月) 12:13:33ID:???
って、PHP-Screw出してるとこだろ?
0046nobodyさん2006/01/03(火) 22:51:09ID:???
zend frameworkの公式ページってどこよ?
検索しても出てこないのだが
0047nobodyさん2006/01/03(火) 23:52:45ID:???
たぶんここが一番それっぽいかな
http://www.zend.com/collaboration
ZPFのまとめページみたいのも用意されてるけど、まだこの前のwebcastの要約程度の内容しかないよ。
0048nobodyさん2006/01/04(水) 00:17:17ID:???
ドキュメント出すとか言ってたのに全然ださねーな

Zend Frameworkの開発に関わっているのが以下の企業だよね?

IBM, Oracle, MySQL, Intel, Actuate, ADP, FileMaker, Schematic,
StepUp Commerce, OmniTI, 100days.de, SugarCRM, bebe.com,
and Marco Tabini, publisher of PHP Architect Magazine

日本の企業が全く入っていないな…
中小企業でもはいっとけばいいのに
0049nobodyさん2006/01/04(水) 05:46:25ID:???
チケット、トークンシステムってどうしてる?
0050nobodyさん2006/01/04(水) 12:13:25ID:ST4/dfIz
>>49
今の所なにもしてません。
0051nobodyさん2006/01/04(水) 13:19:37ID:???
>>48
それだけ沢山の企業が開発に携わってるの?
ただのスポンサーかと思ってた。
0052nobodyさん2006/01/05(木) 00:07:25ID:???
ウェブ開発のフレームワークに、そんな大企業がウジャウジャ一緒に開発してるわけないじゃん。
0053nobodyさん2006/01/05(木) 10:47:48ID:???
なんだかんだで、まだMojavi。
0054nobodyさん2006/01/05(木) 10:56:52ID:???
アガビがいいー
0055nobodyさん2006/01/05(木) 11:34:05ID:???
アガビがいいけど、はやらない。
0056nobodyさん2006/01/05(木) 18:17:59ID:???
Zend Frameworkははやるかな?
0057nobodyさん2006/01/05(木) 19:11:17ID:???
現状だとやっぱAgaviかな。
使いやすいよ。
0058nobodyさん2006/01/05(木) 22:16:48ID:???
agaviでググってもほとんど情報が無いんだが。。。
日本人向きだとmaple ethnaあたりがよさそうかねぇ。
0059nobodyさん2006/01/05(木) 22:59:09ID:???
Agavi使うくらいなら、Symfonyのほうがドキュメントも充実しているしよさげ。

0060nobodyさん2006/01/06(金) 01:14:32ID:???
>>59
たしかにSymfonyはMojavi派生のようだが、Mojavi/Agaviとはずいぶん方向性が違うような

そんな自分の愛用は未だguesswork classic
0061nobodyさん2006/01/06(金) 01:58:03ID:???
mojaviでsmarty使う時、action filterでregistしてる? Viewをextendしてる?
0062nobodyさん2006/01/06(金) 08:35:45ID:???
Viewをextendかな。
かなりぴったりハマるしこれでいいやって思ってたけど、action filterでregistってのはどういうことなの?
0063nobodyさん2006/01/06(金) 12:00:54ID:???
Mojavi以外を使う勇気が欲しい
0064nobodyさん2006/01/06(金) 12:12:45ID:???
mojaviを使った勇気が欲しい・・・
0065nobodyさん2006/01/06(金) 12:18:13ID:???
mojaviなら誰でも使えるよ。 ググッて、がんがれ。
0066nobodyさん2006/01/06(金) 12:37:28ID:???
母「おい、おまいら!!あすたからフレームワーク使いまつ。勉強しる」
父「ネタ詳細キボンヌ!」
母「mojaviですが、何か?」
兄「キタ━━━━━━(゚∀゚)━━━━━━!!!」
妹「キタ━━━━━━(゚∀゚)━━━━━━!!!」
姉「>兄>妹 ケコーン」
兄「>妹(;´Д`)ハァハァ…」
妹「キモイヨ━!!」
姉「バ�iタ逝ってよし」
母「オマエモナー」
父「--------終了-------」
兄「--------再開-------」
妹「再開すな!ヴォケが!!それより情報うpキボン」
母「URLうp」
兄「guesswork age」
母「↑誤爆スマソ」
兄「guesswork age」
父「ほらよ>プロジェクトメンバー」
妹「神降臨!!」
兄「guesswork age」
妹「肉ねーよ!!」
兄「guesswork age」
父「肉ねーよ!!」
兄「guesswork age」
母「ジサクジエンカコワルイ」
兄「guesswork age」
姉「guesswork age厨uzeeeeeeeeeeee!!」
母「ageっていれればあがると思ってるヤシはドキュソ」
爺「mojaviは日本語サイトがないと(mojaviを美味しく食べるのは)難しい」
セールス「イタイ リーダーがいるのはこのプロジェクトですか?」
兄「guesswork age」
妹「兄必死だな(w」
0067nobodyさん2006/01/06(金) 13:03:52ID:???
責任転嫁してますよ
0068nobodyさん2006/01/06(金) 13:19:49ID:???
mojaviが主流で、割とユーザー数多そうなmaple あたりかな。
今後もこの流れだと思う。
0069nobodyさん2006/01/06(金) 16:34:54ID:???
>>62
Mojavi JapanにあるMSQDなんかをダウンロードするとわかる
filterでsmartyを使ってる
他のサンプルでもそうしているやつを見た

どういうポリシーの違いだろうか
0070622006/01/07(土) 09:49:50ID:???
>>69
あーM2の話だったのか。
M2だとSmartyRendererが用意されてるから、その初期化をfilterでやるのが普通なのかも(俺はM2経験ない)。
M3の場合だとSmartyViewっていうのが入ってるけど、まだ中身が何も実装されてない状態だったから自分で書いた。
基本的にM2のSmartyRendererと一緒で、$smarty->assignとかのラッパを書いたってだけの話だけど。
Agaviでは実装済みだね。
要は>>61の質問は結局はM2かM3かって話になると思う。
0071nobodyさん2006/01/08(日) 01:12:59ID:???
HTML_QuickFromのフォーム関連の処理はどこへ置いていますか?

forms/ 以下にまとめているものをよくありますがactionsでかいちゃう人もいるようです。
僕はmodelの下で executeForm()で処理させようかと思っていますがどうでしょうか?
0072nobodyさん2006/01/08(日) 01:29:16ID:???
>>68
mapleってMLも2chのスレも全然活気無いけどはやってるの?
質問の必要が無いほど完成されてるのかな?
最近Ethna始めたけどこれも結構いい感じだね。
0073nobodyさん2006/01/08(日) 02:44:47ID:MOiqJ8HA
>>72
>MLも2chのスレも全然活気無い
はやってるはずがない。
0074nobodyさん2006/01/08(日) 10:42:21ID:???
eZ systemsってどうよ?
Zend PHP Frameworkの一番の宿敵になりそうって言われてるけど。

http://ez.no/

mod_rewrite使ってるのあたりが個人的に微妙。
eZ publishはドキュメントとかやたら張り切って書いてあるわりにサンプルコードが少なくて、結局使い方がイマイチわからなかったよ・・・。
機能が豊富そうっていう印象はあったけど。
eZ componentsは要はクラスライブラリ群?
0075nobodyさん2006/01/08(日) 11:54:37ID:???
>>72
モノは良いと思うんだけど……
とにかくドキュメントやサンプルが不足すぎて手を出しにくいこと、
作者がアレコレ色々なものに手を出していて完成品が全然出てこないこと、
利用者コミュニティがブログ周辺で完結してしまっていて参加しにくいこと、
などなどから、利用者はさほど多くない雰囲気。

気に入らないコードを自分でばんばん書き換えちゃえるくらいだと
けっこう良いフレームワークだと思う。
0076nobodyさん2006/01/08(日) 13:34:08ID:???
仕事で使ってるけど、良く出来てると思うよ。
ドキュメントないからソース読めないと困るかもしれないけど。
0077nobodyさん2006/01/08(日) 13:45:51ID:???
ソースを読まないとどうにも進まないのは大抵のフレームワークに言えるねぇ。
良いものでも、「Hello world を出力してみよう」ってくらいで・・・
0078nobodyさん2006/01/08(日) 13:51:56ID:???
フレームワークって楽に開発するための物なんだから、少なくとも
ソースを読むことが必須な状態からは脱却してほしい。
いろんなレベルの人と協業するのに今の状態では辛すぎる。
0079nobodyさん2006/01/08(日) 14:17:24ID:???
ドキュメント化しよう、とは思わないんだね
0080nobodyさん2006/01/08(日) 15:07:55ID:???
>>79
誰に向かっての発言なのかわからん
0081nobodyさん2006/01/08(日) 15:11:12ID:???
ZPFが出れば流れも変わるんじゃない?
Extreme Simplicityとか謳ってるくらいだし。
.NET、Struts、RoRのパクリがほとんどで真新しいものはないけど、逆にPHPでそれらが全て利用可能になるってのは大きいんじゃないかな。
PHPらしく多くをベタ書きで書きつつ自然にフレームワークの恩恵に与れるっていう形になるんじゃないかと。
今あるフレームワークはどれも癖のあるクラス設計を強いられるから、PHPらしくないんだよね。
0082nobodyさん2006/01/08(日) 15:14:17ID:???
Zendフレームワークって
エクスパンションなのかなあ?
0083nobodyさん2006/01/08(日) 15:29:57ID:???
>>81
Zendのフレームワークも、べた書きなんてありえないバリバリのOOデザイン
だとおもうよ。なにせあのPHP5を作ったZendだからね...

>>82
PHPの拡張ってこと?
そうすっと今度は微妙な振る舞いをCソースがよめないせいで確認できなくて
困る人が多発する気が...
0084nobodyさん2006/01/08(日) 16:07:45ID:???
Zendのフレームワークみたら、PEARとか全然生かしてなさそうだね。
0085nobodyさん2006/01/08(日) 16:12:08ID:???
>>82
エクスパンション == extension ?
Webcastでは全てPHPでオープンソースで書くって言ってた希ガス

>>83
そうかなぁ。
フレームワークのコード自体はOOで書いてあっても、我々ユーザにはOOの設計を強要しないって感じになってもらえるとありがたいんだけど(つまりOOは「使う」だけであって「作る」必要がないって感じ)。
フレームワークのコンポーネントを最小限の部分だけ継承して2〜3行ちょろっと書いとけばあとは勝手に動いてくれる、みたいな。

>>84
Pearはおろか既存のものはSmartyなども含めて一切使わない方針で、完全に独自の設計になるらしい。
テンプレートも独自のものみたいだし。
そこに批判もけっこうあるみたいだけど。
0086nobodyさん2006/01/08(日) 19:15:49ID:???
ちょっとしたもんに使える、手軽な奴ってない?
0087nobodyさん2006/01/08(日) 19:54:48ID:???
使ったことないけどguessworkとかCakePHPとか。
0088nobodyさん2006/01/09(月) 08:33:20ID:???
フレームワークとか使ったことなくて、
とりあえずmaple見てみたんだけど、なんかディレクトリ深すぎない?
設定とかで変えれるのかも知れないが、
あっち行ったりこっち行ったり面倒なような。
どんな環境でどのくらいのファイル数になるのを想定してるのかな…。
0089882006/01/09(月) 08:38:56ID:???
補足。特に批難とかしたい訳じゃなくて、
単にああいう構成になってる理由が疑問って話。
他のは違うのかもしれんが…。
0090nobodyさん2006/01/09(月) 09:14:18ID:???
>>88
少ないディレクトリにファイルがゴッソリあるよりマシ。
0091nobodyさん2006/01/09(月) 13:05:13ID:???
agavi
UPDATE 2005-01-08: 0.10.1b has been released!
0092nobodyさん2006/01/09(月) 15:50:42ID:???
>>86
cakeの場合、データ構造が単純ならscaffoldingが使えるから、死ぬほどお手軽。
0093nobodyさん2006/01/09(月) 17:20:33ID:???
Mapleは
オレオレフレームワークのたたき台を目指してるみたいだね。
標準になるべくZendフレームワークが出てきたので
戦略的に正しいと思う。
0094862006/01/09(月) 18:22:40ID:???
>>92
いや、88ともダブるんだけどさ、なんかみんな大げさすぎない?
そういうのが必要な場合があるってのは分かるんだけどさ、、

ちょっとしたもん書く時にさ、ベタで書くより
なんちゃってMVCにしとけば、楽じゃん?みたいな感じなのないかな。
逆流してる?

0095nobodyさん2006/01/09(月) 18:39:27ID:???
カウンター作成専用のフレームワークつーのには興味無いな。
そのフレームワークが対象とするもののうち一番大掛かりなものになるのは当然と思われ。
0096nobodyさん2006/01/09(月) 22:12:40ID:???
フレームワークはリロード対策とかしれくれないのか?
0097nobodyさん2006/01/09(月) 22:21:01ID:???
>>96
MapleにはTokenフィルタってのがあるね
0098nobodyさん2006/01/10(火) 00:10:58ID:???
mojaviのaction.class.phpの上にあるライセンス表示って別に残さなくてもいいんだよね?
0099nobodyさん2006/01/10(火) 09:07:54ID:???
>>98
mojaviを改造でもしてんの?そうでなかったら編集する必要すらないと思うけど。
一応LGPLだしランセンス表示を含めどんな改変をしても構わないけど、改変後のプログラムはGPLかLGPLのもとでオープンソースとして再頒布しなきゃいけないんじゃないかな。
間違ってたら訂正よろ。
0100nobodyさん2006/01/10(火) 10:23:12ID:???
LGPL表記と著作権表示を削るのは多分よくないでしょう。空のファイルでもLGPL配布物の一部ならば。
ここは堂々と著作権者に自分の名前を追記して配布汁。

頒布っていうか、べつに広く配布する必要は無いし、ソースを売って金にしてもいいけど、
そのソースコードをもらった人にLGPLによるソース再配布の権利を認めないといけない。
だからLGPLコードを暗号化して顧客に納品しちゃダメ


...て感じだと思う。
0101nobodyさん2006/01/10(火) 11:07:16ID:???
>>100
なるほど。フォローサンクス。
ちょっと気になったけど、LGPLはソース保持者が配布することができる「権利」ではなくて、(要望があれば必ず)配布しなければならないことを使用条件とする(というか強要する)ものじゃないかな。
だから売って金にするってのはまずいのでは?
0102nobodyさん2006/01/10(火) 11:39:38ID:???
>>101
売って金にしても問題ないはず。
ただし同時に無料配布する必要もある(実費程度はとってもよい)。
0103nobodyさん2006/01/10(火) 12:05:36ID:???
成果物(ソフトウェア)の所有者にのみソース公開の義務が生じるだけだから、
広く一般に公開する必要は必ずしもあるわけじゃない。どんな高い金で売ってもOK

ただし、ソースをもらった方はLGPLに基づきいくらでも再配布出来る。そしてそれを縛ることはできない。
0104nobodyさん2006/01/10(火) 12:14:40ID:???
LGPLで言う所の、"work based on the library(ライブラリを基にした著作物)" と
"work that uses the library(ライブラリを利用した著作物)"は違うから、
mojavi部分と独自のビジネスロジック部分とを分離して独自部分を配布する場合は
LGPLの範疇にならないんじゃないかなぁ。

まぁ、>>98のライセンス表示削除は確実にアウトですが。。。
0105nobodyさん2006/01/10(火) 12:49:50ID:???
mojaviをフレームワークとして通常の利用する分には今の話の流れとは関係ないよ(GPLではないのでこれらは売ろうが隠蔽しようが公開しようが自由だと思う)。
飽くまでmojaviを改変した場合の話。
ライセンス表示は削除したとしても、新たにLGPLの全文か全文へのポインタ相当のものを示せばいいんじゃないの?
著作者の表示に関しては、元の著作者(mojaviの場合Sean Kerr)を載せる必要ってあったっけ?
PHP Licenseだとそういうのは明示的に書かなきゃダメってなってるけどLGPLはそういう項目ある?
0106nobodyさん2006/01/10(火) 14:54:44ID:???
変更する場合は変更箇所の明示と著作権の追加をすべしっていう項があった気がする。
ライセンスはどうか知らないけど、ファイル中の著作権表記の削除はGPL以前に著作権的によくないと思う。


あと、一緒に配布するかぎりはLGPLでもGPL的縛りを逃れられないような...
このへんの成果物の扱いはGPL/LGPLで記憶も理解も混乱しているのでよくわからん。
0107982006/01/10(火) 16:03:17ID:???
というかMojaviを改変したわけでなく、新しくLoginAction.class.phpなどを
自分で作ったのです。
それの著作権は自分にあるのでサンプルにあるような著作権表示は削除しても
いいと思っていたのですがどうですか?

または、Mojaviからextendsしたファイルとかはどうなるんでしょうかね。
要らないと思っていたんですが、違うのかな。
01081052006/01/10(火) 16:14:49ID:???
>>106
たしかに著作権の表記を削除ってのは仁義的にもよろしくないな。
なんかpublic domainとか著作権放棄とかの話がごっちゃになってた。

GPLかLGPLかはwork that uses the libraryにも同じ制限が課されるかってのがあると思った。
LGPLの場合はmojaviを使用するだけなら、その使用したコードにはLGPLの制限は一切かからないんじゃないかな。

以下はLGPLのTERMS AND CONDITIONS 〜 から一部抜粋。
> 5. A program that contains no derivative of any portion of the Library, but is
> designed to work with the Library by being compiled or linked with it, is
> called a "work that uses the Library". Such a work, in isolation, is not a
> derivative work of the Library, and therefore falls outside the scope of this
> License.

コンパイルやリンクってPHPには適用しづらいけど、include/require等によって使うことと考えて差し支えないと思う。
01091052006/01/10(火) 16:25:47ID:???
と思ったけど、「in isolation」ってなってるな・・・。
mojavi使って作ったソースって、GPL/LGPLを明記する義務があって且つ再配布されても文句言えないってこと?
なんかわからなくなってきた。
0110nobodyさん2006/01/10(火) 16:46:51ID:???
work と Library を まじぇまじぇして配布するなってことでしょ?
0111nobodyさん2006/01/10(火) 16:49:43ID:???
まじぇまじぇさえしなければLGPLの呪縛から完全に逃れられるってこと?(mojavi本体がLGPLなことは除いて)
0112nobodyさん2006/01/10(火) 17:23:22ID:???
Mojaviみたいなフレームワークの場合、APIのみ同じであるようなフレームワークを
自分であらたに開発すればいいので、それを使うスクリプトは独立しているとみなしていいはず。


だから、自分の製品の一部に組み込んでmojaviを配布する場合はLGPL縛りで、
独立したものとして配布する場合のライセンスは自由なんじゃないかな。
スクリプトの場合、全部のファイルが独立しているという見方も出来るから、
このへんは難しいとこだとおもうけど。
01131092006/01/10(火) 17:49:43ID:???
紛らわしいこと書いて失礼・・・

> Such a work, in isolation, is not a derivative work

ってのはmojaviを使った著作物「単体」では派生物と見なさない(つまり著作物+mojaviをひっくるめて「派生物と見なさない」わけではないってことをin isolationで単に明示してる)って意味っぽい。
つまりmojaviを使用することを前提にしてつくったActionとかViewとかModelとかはLGPLの影響は一切ないってことかな。

>>107
というわけで自分で作ったActionにはLGPLやSean Kerrは必要ないと思う。
0114nobodyさん2006/01/10(火) 23:55:03ID:???
ActionとModelの違いって何?
0115nobodyさん2006/01/11(水) 00:04:17ID:???
Action=親方
Model=作業員
0116nobodyさん2006/01/11(水) 02:52:36ID:0BNMEQyQ
フレームワークで作ってたら、
どこか変更する必要がある時、
「どのファイルをいじったらいいのか?」が
パッとイメージしにくくない?
とりあえずAction開いて、
そこから読んでるけど。
何かいい方法ないかなぁ…。
0117nobodyさん2006/01/11(水) 03:05:05ID:???
フレームワークで分けられてるだけマシだと思ってやってる。
0118nobodyさん2006/01/11(水) 07:49:18ID:SLuQbgaX
>>116
保守性を考えるならまともな仕様書/設計書を残しておけ。
0119nobodyさん2006/01/11(水) 09:31:07ID:???
>>114
共通点のほうが見つからないじゃん
0120982006/01/11(水) 18:53:00ID:???
>>116
やりかた次第じゃないのか?
わかやすいように機能ごとにファイルにしたりとかもできるんじゃない?
0121nobodyさん2006/01/11(水) 20:25:19ID:???
>>119
それぞれの役割は何か答えよ。
0122nobodyさん2006/01/11(水) 22:58:55ID:0mCKrO3o
agavi使ってるんだけど、エラー処理どうしてる?
action の initialize で false を返すとexception投げて来るんだけど、
どこでどうやって捕捉すればいいのかわかんね。
0123nobodyさん2006/01/11(水) 23:01:22ID:SURfFh1U
>>115
ワロタ
0124nobodyさん2006/01/12(木) 09:51:00ID:9A+OuFoz
Agaviサイトが…
ttp://agavi.org/

ParseException
Message: Configuration file "/var/www/sites/agavi.org/webapp/config/autoload.ini"
       specifies class "MailAppender" with nonexistent or unreadable file
       "/var/www/agavi/logging/MailAppender.class.php"
Code: N/A
Class: AutoloadConfigHandler
File: /var/www/agavi/config/AutoloadConfigHandler.class.php
Line: 7
0125nobodyさん2006/01/12(木) 10:09:00ID:???
>>124
またagaviのとこかw
つーかagaviのサイトってagavi使ってたんだ。
0126nobodyさん2006/01/12(木) 15:06:57ID:???
mojavi2でのポストフィルタの使い方がわかりません。
GlobalFilterでregistして、executeのあとに処理を書けばいいんでしょうか?

googleで3時間程検索しましたが全然出てきませんでした。
よろしくお願いします。
0127nobodyさん2006/01/12(木) 16:02:51ID:???
>>126
こんな感じになるんじゃないかな。
<filter>.class.php
class <filter名> extends Filter{
 function execute(&$filterChain,&$controller,&$request,&$user){
  static $loaded;
  // ActionChainやAction::forwardを使った時にフィルタが複数回適用されるのを防ぐ
  if($loaded == NULL){
   $loaded = TRUE;
   // 前処理フィルタ
   ...
   // filter chain の次のフィルタを実行
   // pre-filterとpost-filterの分岐点
   $filterChain->execute($controller,$request,$user);
   // 後処理フィルタ
   ...
  }else{
   $filterChain->execute($controller,$request,$user);
  }
 }
}
0128nobodyさん2006/01/12(木) 16:47:35ID:9A+OuFoz
>>127
そんな感じでOKだとワシも思う。

それより、>>126

まともにグーグル先生すら使えんもんが、何を作ると言うのだ。と、小一時間。
0129nobodyさん2006/01/12(木) 17:35:39ID:???
>>127,128
ありがとうございます。
Googleでも同じようなことが書いてあったのですがそれでもよくわからないの
です。

>    $filterChain->execute($controller,$request,$user);
>    // 後処理フィルタ

この後に処理を書いたものが「Viewの後に」実行されるという認識であってますか?

何個もFilterを使っている場合、どのフィルタの中で処理を書けばいいかが
わからないです。
最後に処理されるフィルタのところで書くような気がするのですが、そのような
記述をしているところがありませんでした。





0130nobodyさん2006/01/12(木) 17:48:31ID:???
>>129
前スレあたりに書いたのにちょっと手を加えたものを再掲すると、

個々のフィルタには前処理・後処理という2段階の実行順序があって、
登録した順に前処理が全て実行されてから、今度は逆順に後処理が実行される。

Actionの実行部分もフィルタの一種として扱われていて(ExecutionFilter)、
全てのフィルタの登録後に登録されている。
Viewの実行(View::execute())はExecutionFilterの中で実行されている。

結果、登録順に1,2...の番号を付けた時に、
1. GlobalFilterのpre-filter1,pre-filter2...を実行
2. moduleFilterのpre-filter1,pre-filter2...を実行
3. ExecutionFilterを実行(認証や特権の判定、action処理)
4. Viewの実行
5. moduleFilterの...post-filter2,post-filter1を実行
6. GlobalFilterの...post-filter2,post-filter1を実行
という順番で処理されることになる。
0131nobodyさん2006/01/12(木) 20:45:08ID:???
>>130
詳しい説明ありがとうございます。
動作順序がよくわかりました
なんでそういう複雑な感じになってるかはよくわかりませんがw


検索用用語
プリフィルタ ポストフィルタ prefilter postfilter mojavi2
0132nobodyさん2006/01/12(木) 21:57:58ID:9A+OuFoz
>>131

>検索用用語
>プリフィルタ ポストフィルタ prefilter postfilter mojavi2

mojavi filter だけである程度答えでてくるよ。
ttp://www.google.co.jp/search?hl=ja&c2coff=1&q=mojavi+filter&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0133nobodyさん2006/01/14(土) 14:30:31ID:???
mojaviのlibとoptに入れるものってどうやって分けるの?
0134nobodyさん2006/01/14(土) 19:24:49ID:???
>>133
何かと思ったらMojavi2の話か。
libとoptってMojaviのコンポーネントのソースが入ってるとこじゃないの?
自分で作ったものは基本的にwebapp/libだと思うけど。
0135nobodyさん2006/01/15(日) 02:12:19ID:???
>>130
>Viewの実行(View::execute())はExecutionFilterの中で実行されている。
じゃあ、ExecutionFilter以降のPostFilterは何をしてるの?
0136nobodyさん2006/01/15(日) 02:35:42ID:???
>>135
それは君が決めること。

ExecutionTimeFilter.class.php(配布物に含まれる実行時間を計測するやつ)の場合、

ob_start();
... // GlobalFilterに使った場合、一番最初に呼び出される。タイマー初期化
$filterChain->execute($controller, $request, $user);
... // Glo(ry 。実行時間を計算。
ob_clean();
echo "〜"; // ob_*でバッファに取り込んだものと、計算した実行時間を合わせて出力

ってな感じで使っている。
0137nobodyさん2006/01/15(日) 03:11:54ID:/IaCdmhr
フレームワーク使ってると
仕込む場所と
使う場所が離れてるから、
知らないうちに使われない変数やオブジェクトが
増えて行ったりしない?
あといつの間にか使わなくなった関数とかも増えがちだ。
0138nobodyさん2006/01/15(日) 04:26:13ID:???
誰か俺に一からフレームワーkとオブジェクト指向について教えろ!
0139nobodyさん2006/01/15(日) 04:27:39ID:???
本でも読め
0140nobodyさん2006/01/15(日) 10:40:31ID:???
>>137

( Д )゚ ゚
0141nobodyさん2006/01/15(日) 17:45:48ID:???
>>137
つ転職
■ このスレッドは過去ログ倉庫に格納されています