[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/
0083nobodyさん
2006/01/08(日) 15:29:57ID:???Zendのフレームワークも、べた書きなんてありえないバリバリのOOデザイン
だとおもうよ。なにせあのPHP5を作ったZendだからね...
>>82
PHPの拡張ってこと?
そうすっと今度は微妙な振る舞いをCソースがよめないせいで確認できなくて
困る人が多発する気が...
0084nobodyさん
2006/01/08(日) 16:07:45ID:???0085nobodyさん
2006/01/08(日) 16:12:08ID:???エクスパンション == 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:???0088nobodyさん
2006/01/09(月) 08:33:20ID:???とりあえずmaple見てみたんだけど、なんかディレクトリ深すぎない?
設定とかで変えれるのかも知れないが、
あっち行ったりこっち行ったり面倒なような。
どんな環境でどのくらいのファイル数になるのを想定してるのかな…。
008988
2006/01/09(月) 08:38:56ID:???単にああいう構成になってる理由が疑問って話。
他のは違うのかもしれんが…。
0091nobodyさん
2006/01/09(月) 13:05:13ID:???UPDATE 2005-01-08: 0.10.1b has been released!
0093nobodyさん
2006/01/09(月) 17:20:33ID:???オレオレフレームワークのたたき台を目指してるみたいだね。
標準になるべくZendフレームワークが出てきたので
戦略的に正しいと思う。
009486
2006/01/09(月) 18:22:40ID:???いや、88ともダブるんだけどさ、なんかみんな大げさすぎない?
そういうのが必要な場合があるってのは分かるんだけどさ、、
ちょっとしたもん書く時にさ、ベタで書くより
なんちゃってMVCにしとけば、楽じゃん?みたいな感じなのないかな。
逆流してる?
0095nobodyさん
2006/01/09(月) 18:39:27ID:???そのフレームワークが対象とするもののうち一番大掛かりなものになるのは当然と思われ。
0096nobodyさん
2006/01/09(月) 22:12:40ID:???0098nobodyさん
2006/01/10(火) 00:10:58ID:???0099nobodyさん
2006/01/10(火) 09:07:54ID:???mojaviを改造でもしてんの?そうでなかったら編集する必要すらないと思うけど。
一応LGPLだしランセンス表示を含めどんな改変をしても構わないけど、改変後のプログラムはGPLかLGPLのもとでオープンソースとして再頒布しなきゃいけないんじゃないかな。
間違ってたら訂正よろ。
0100nobodyさん
2006/01/10(火) 10:23:12ID:???ここは堂々と著作権者に自分の名前を追記して配布汁。
頒布っていうか、べつに広く配布する必要は無いし、ソースを売って金にしてもいいけど、
そのソースコードをもらった人にLGPLによるソース再配布の権利を認めないといけない。
だからLGPLコードを暗号化して顧客に納品しちゃダメ
...て感じだと思う。
0101nobodyさん
2006/01/10(火) 11:07:16ID:???なるほど。フォローサンクス。
ちょっと気になったけど、LGPLはソース保持者が配布することができる「権利」ではなくて、(要望があれば必ず)配布しなければならないことを使用条件とする(というか強要する)ものじゃないかな。
だから売って金にするってのはまずいのでは?
0103nobodyさん
2006/01/10(火) 12:05:36ID:???広く一般に公開する必要は必ずしもあるわけじゃない。どんな高い金で売ってもOK
ただし、ソースをもらった方はLGPLに基づきいくらでも再配布出来る。そしてそれを縛ることはできない。
0104nobodyさん
2006/01/10(火) 12:14:40ID:???"work that uses the library(ライブラリを利用した著作物)"は違うから、
mojavi部分と独自のビジネスロジック部分とを分離して独自部分を配布する場合は
LGPLの範疇にならないんじゃないかなぁ。
まぁ、>>98のライセンス表示削除は確実にアウトですが。。。
0105nobodyさん
2006/01/10(火) 12:49:50ID:???飽くまでmojaviを改変した場合の話。
ライセンス表示は削除したとしても、新たにLGPLの全文か全文へのポインタ相当のものを示せばいいんじゃないの?
著作者の表示に関しては、元の著作者(mojaviの場合Sean Kerr)を載せる必要ってあったっけ?
PHP Licenseだとそういうのは明示的に書かなきゃダメってなってるけどLGPLはそういう項目ある?
0106nobodyさん
2006/01/10(火) 14:54:44ID:???ライセンスはどうか知らないけど、ファイル中の著作権表記の削除はGPL以前に著作権的によくないと思う。
あと、一緒に配布するかぎりはLGPLでもGPL的縛りを逃れられないような...
このへんの成果物の扱いはGPL/LGPLで記憶も理解も混乱しているのでよくわからん。
010798
2006/01/10(火) 16:03:17ID:???自分で作ったのです。
それの著作権は自分にあるのでサンプルにあるような著作権表示は削除しても
いいと思っていたのですがどうですか?
または、Mojaviからextendsしたファイルとかはどうなるんでしょうかね。
要らないと思っていたんですが、違うのかな。
0108105
2006/01/10(火) 16:14:49ID:???たしかに著作権の表記を削除ってのは仁義的にもよろしくないな。
なんか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等によって使うことと考えて差し支えないと思う。
0109105
2006/01/10(火) 16:25:47ID:???mojavi使って作ったソースって、GPL/LGPLを明記する義務があって且つ再配布されても文句言えないってこと?
なんかわからなくなってきた。
0110nobodyさん
2006/01/10(火) 16:46:51ID:???0111nobodyさん
2006/01/10(火) 16:49:43ID:???0112nobodyさん
2006/01/10(火) 17:23:22ID:???自分であらたに開発すればいいので、それを使うスクリプトは独立しているとみなしていいはず。
だから、自分の製品の一部に組み込んでmojaviを配布する場合はLGPL縛りで、
独立したものとして配布する場合のライセンスは自由なんじゃないかな。
スクリプトの場合、全部のファイルが独立しているという見方も出来るから、
このへんは難しいとこだとおもうけど。
0113109
2006/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:???0115nobodyさん
2006/01/11(水) 00:04:17ID:???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保守性を考えるならまともな仕様書/設計書を残しておけ。
0122nobodyさん
2006/01/11(水) 22:58:55ID:0mCKrO3oaction の initialize で false を返すとexception投げて来るんだけど、
どこでどうやって捕捉すればいいのかわかんね。
0123nobodyさん
2006/01/11(水) 23:01:22ID:SURfFh1Uワロタ
0124nobodyさん
2006/01/12(木) 09:51:00ID:9A+OuFozttp://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
0126nobodyさん
2006/01/12(木) 15:06:57ID:???GlobalFilterでregistして、executeのあとに処理を書けばいいんでしょうか?
googleで3時間程検索しましたが全然出てきませんでした。
よろしくお願いします。
0127nobodyさん
2006/01/12(木) 16:02:51ID:???こんな感じになるんじゃないかな。
<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そんな感じでOKだとワシも思う。
それより、>>126
まともにグーグル先生すら使えんもんが、何を作ると言うのだ。と、小一時間。
0129nobodyさん
2006/01/12(木) 17:35:39ID:???ありがとうございます。
Googleでも同じようなことが書いてあったのですがそれでもよくわからないの
です。
> $filterChain->execute($controller,$request,$user);
> // 後処理フィルタ
この後に処理を書いたものが「Viewの後に」実行されるという認識であってますか?
何個もFilterを使っている場合、どのフィルタの中で処理を書けばいいかが
わからないです。
最後に処理されるフィルタのところで書くような気がするのですが、そのような
記述をしているところがありませんでした。
0130nobodyさん
2006/01/12(木) 17:48:31ID:???前スレあたりに書いたのにちょっと手を加えたものを再掲すると、
個々のフィルタには前処理・後処理という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:???詳しい説明ありがとうございます。
動作順序がよくわかりました
なんでそういう複雑な感じになってるかはよくわかりませんがw
検索用用語
プリフィルタ ポストフィルタ prefilter postfilter mojavi2
0132nobodyさん
2006/01/12(木) 21:57:58ID:9A+OuFoz>検索用用語
>プリフィルタ ポストフィルタ 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:???0134nobodyさん
2006/01/14(土) 19:24:49ID:???何かと思ったらMojavi2の話か。
libとoptってMojaviのコンポーネントのソースが入ってるとこじゃないの?
自分で作ったものは基本的にwebapp/libだと思うけど。
0135nobodyさん
2006/01/15(日) 02:12:19ID:???>Viewの実行(View::execute())はExecutionFilterの中で実行されている。
じゃあ、ExecutionFilter以降のPostFilterは何をしてるの?
0136nobodyさん
2006/01/15(日) 02:35:42ID:???それは君が決めること。
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:???0139nobodyさん
2006/01/15(日) 04:27:39ID:???0142137
2006/01/15(日) 19:43:37ID:???1:テンプレートにassign
2:テンプレート側の変更で使わなくなる
3:assignはされたまま
みたいなことないかい?
0143nobodyさん
2006/01/15(日) 21:54:01ID:???バリデータが残りっぱなしみたいなこととか。
0145324
2006/01/16(月) 01:05:52ID:VcFB/Doiすごい巨大な配列とかなら気にするけど、
普通のデータだったら、いちいちそんな細かい事気にしてられません。
0147nobodyさん
2006/01/16(月) 02:03:12ID:???分離してるからこその問題じゃん
MS公認コードコンプリートでも
変数のバインドは出来るだけ短くせよと説いているが
ファイルをまたいでバインドしてるわけだからなぁ。
0149nobodyさん
2006/01/16(月) 02:40:17ID:???防御的プログラミングの基本じゃない?
でも一括で渡すフレームワークもあったっけ。
0150nobodyさん
2006/01/16(月) 02:45:51ID:???initialize,execute,getDefaultViewとかの主要メソッドを前において
バリデーションとかコンバータとかgetRequestMethodsとかのサブ的なメソッドは
後に詰めてたんだけど、
サブ的なメソッドの中にこそゴミがたまりがちなので、
上の方に置くことにしてみたよ。
視界に晒されることで整理整頓が促されるかなと。
0151nobodyさん
2006/01/16(月) 05:57:38ID:???テンプレートのファイル名は
大文字から始めてる?小文字から始めてる?
0152nobodyさん
2006/01/16(月) 06:34:10ID:???0153nobodyさん
2006/01/16(月) 12:58:05ID:???おいら、Viewでまとめてから、テンプレートに送ってんですが、
この下記かたはありですか?
0154nobodyさん
2006/01/16(月) 13:32:32ID:???Helperだけassignとかもやるお。
0155nobodyさん
2006/01/16(月) 20:13:50ID:???0156nobodyさん
2006/01/17(火) 01:26:33ID:???0158nobodyさん
2006/01/18(水) 16:12:06ID:???0160nobodyさん
2006/01/19(木) 01:39:40ID:???とりあえずタブが空白4文字でなく\tになってるのをどーにかしたいのですが…
0162nobodyさん
2006/01/19(木) 06:15:07ID:???truestudio使ってるなら
ウィンドウ>設定>PHP>Editor>Typingタブで
「Insert spaces for tab(〜)」にチェックをつける。
0163nobodyさん
2006/01/19(木) 19:13:18ID:???0164nobodyさん
2006/01/19(木) 19:23:58ID:???0165nobodyさん
2006/01/19(木) 19:34:32ID:???0166nobodyさん
2006/01/19(木) 19:40:07ID:???0168nobodyさん
2006/01/19(木) 21:50:06ID:???testsフォルダに生成された各TESTファイルにTESTケースを
記述し、「agavi test」をプロジェクトルートで実行しても、
実行されたのは0で、エラーも0・・・。
どうやったらTESTが実行されるのですか・・・。
Tutorialは抜けてますし。
0169nobodyさん
2006/01/20(金) 12:49:48ID:???0170nobodyさん
2006/01/20(金) 21:40:36ID:???また別のフレームワークが。
0171nobodyさん
2006/01/21(土) 00:11:11ID:???0172nobodyさん
2006/01/21(土) 02:21:30ID:???一ユーザからするとその熱意を既存のフレーム
ワークのブラッシュアップに使ってほしいものだが。
そのうちフレームワークを作るためのフレームワークが
出てきたりしてなw
0173nobodyさん
2006/01/21(土) 12:34:46ID:???0174nobodyさん
2006/01/21(土) 12:41:14ID:???うろ覚えだけど。
0175nobodyさん
2006/01/21(土) 18:35:33ID:???0176172
2006/01/21(土) 18:49:24ID:???0177nobodyさん
2006/01/21(土) 18:59:25ID:???mojaviから派生したフレームワークがある事を言ってるんじゃね?
>>175
php5だけじゃないかなぁ。mojavi3(php5)から派生してagavi って感じかと。
0180nobodyさん
2006/01/22(日) 09:13:49ID:???他もだいたい対応可能だろう
0181nobodyさん
2006/01/22(日) 09:17:37ID:???PHP4の代表はMapleだと思う。
俺はPHP5しか使ったことないのでMapleは
使ったことないけど、活動が活発だし、
面白そうだなぁと。
0182nobodyさん
2006/01/22(日) 13:10:46ID:???■ このスレッドは過去ログ倉庫に格納されています