1 :
nobodyさん :
2005/08/10(水) 02:21:08 ID:CBjrwwHd
2 :
nobodyさん :2005/08/10(水) 02:21:56 ID:CBjrwwHd
スレ立て杉orz
オリフレ族の俺が来ましたよ
本家のMojaviプロジェクトが寄付を募ってます。サーバー維持に衝き99ドル必要だそうです。 ハードなMojaviユーザーは払ってみるのも面白いかもしれません。 だって。モジャビjpより。 結構インパクトはでかいのに たかが99ドルが問題になるほど金になってねーのかYO でもオープンソース商売っていまいち形が見えない。 Zendとかもどこで儲けてるんだろ?
apacheもどこでもうけてんだ?
なんでPHPフレームワークって大体放置されぎみなんだろう…
やっぱ金にならないのが問題なんだよ。 サービスを続けるには金がいる。 それが技術者には分かってないのれす。
そんなに大きくないオープンソースプロジェクトの場合、やる気の方が問題。 だれもほめてくれなかったり、飽きるとみんなやめちゃう。 ただ、MojaviくらいならSourceForgeなどで充分なはずなのに、 サーバーが欲しいとわがままを言うのはまだプロジェクトに興味がある証拠かも。
本当に興味あるならもっとバリバリ更新できると思うんだけどなぁ まあ仕事じゃないから仕方ないか…
オリフレで勉強させてもらったから$20送ったった ま、経費で落とすけどな
そもそもフレームワーク必要になる位の案件なら Java使うわい って思うのね。
フレームワークは 書けば書くほど楽になっていくから RPGみたいな楽しさがあるよ 作ってて楽しいのは大きい。
MojaviObjectのtoStringは 何の時に使うんですか?
M2で若干違和感あった命名法(addLoggerとかcleanupとか)は M3で直ってるんだな パクるならM3からパクれ、と。
おまいらSean Kerrに金払ってやれよ 世間に大量の知をふりまいた奴に対してたった$220も集まらないなんて これ使って金稼いだんだろ?えーこら
おまいら、 テンプレート継承してますか?
>>22 agavi の話?
SmartyView を継承したら思い通りに動かなかったので SmartyViewを元にView を継承したクラスを作った。
テンプレートとViewは別物ジャン テンプレート継承ってどんなだ?いまいちイメージが沸かないな
M2のFileAppender、書き込み時ロックしてないから 高負荷になったらファイル壊れるよなぁ
アガビチェックアウトしてみたけど まだFileAppenderも埋まってねーのかよ ( ゚д゚)、ペッ
まだ開発途中だからな。 不満なら自分で作って投稿しろよ。 自分で作れないなら、指くわえて待ってろ。
>>28 PHPでフレームワークを使ってみたいけど、大袈裟な物だと、PHPを使うより、
JAVAを使った方が良い様な気がして悩んでいたんだけど、guessworkは、
私のニーズにすっぽりはまりそうな感じ。
ただ、昨年の10月に 0.0.1 が出でから全然更新されていないので、自然消滅
かなと思ってたけど、
http://blog.bmedianode.com/ で開発が続いている事を知って、ひと安心。
0.9.0 が今月中に出る予定なんですね。
>>28 これって使ってみた人いる?
controller を継承したclassをひとつ作ればいいだけ?
Action とか View とか命名規則とか覚えなければならないのは面倒だからなー。
でもこれって フロントコントローラー形式じゃなくて 一つのスクリプトが一アクションって感じかね。
フロントコントローラで actionをメソッドで持つ形だね
ゲスワークの変数だけ用意しておけば 勝手にほりこんでくれるってアイデア何か新しいな リクエストパラメータ以外にも使えそう
> guesswork classic 0.0.2 > PHP4用のguessworkをguesswork classicと改称して、0.0.2をリリースしました。 PHP5用は、まだみたいですね。
mojaviでactionクラス作って、そのクラスのメソッド中に変数を 作ると、エラーになるんでしょうか。 Undefined variable とエラーになってしまいます。 なぜでしょう。
37 :
nobodyさん :2005/08/17(水) 00:07:28 ID:pp1u9i8Z
>>36 Mojavi以前にPHPでメソッドないでメンバ変数にアクセスするには$this->var
また、PHPで値を代入していない変数を参照するとUndefined variableのノーティスがでるが。
38 :
nobodyさん :2005/08/17(水) 00:11:11 ID:XikmAfZG
優しいなぁ・・・この季節は放置が基本だと思ってたよ。
>>37 さん
どうもありがとう。
$test = '';
で回避していました。
Mojavi鯖のドネーション、あと1日たらずじゃん。 前より増えてるけどまだ届いてない 侠気のある奴よろしくメカドッグ。
>>40 念のため書いておくけど
Deadline:
08/17/2005 11:59 PM EST
ってのは日本時間で8月18日(木曜日)の昼間12時59分ね。
1日と6時間ちょいだそうな。
それと払える人はマジ払えって。
いや、払ってください。よろしくお願いします。
42 :
nobodyさん :2005/08/17(水) 14:49:39 ID:XikmAfZG
いや、だってMojaviやる気ないじゃん… FreeBSDみたいバリバリ動いててお世話になってるプロジェクトが あと一日で金足りないなんて自体ならさすがに考えるけど。
でもこれで集まらなかったら 多分本当にやめちゃうだろうな。 この程度しか期待されてねーのかよって。 しかしMojavi使いが世界に何人いるのかしらないが この集まりってどうなんだろ。 一部で騒がれていただけで案外ユーザー少ないのか。
44 :
42 :2005/08/17(水) 17:02:26 ID:???
agaviあるしそれでもいいんじゃないの? 俺は未だにagavi未使用だけどさ。
ん? 220ドルすら集まらないってこと?
アガビにまるまくりされる&鯖の金も集まらない Kerrもへこみまくりだ
まるまくり→まるぱくり
agaviってそんなに良いの?
ひょっとして$20贈ったらしい
>>15 が一番貢献したのではなかろうか・・・
開発止まってるとはいえ、恩恵に預かったのも確かだから、 俺も$20送ってきた。したら、76-99%になったよ。あと$10なのかなぁ。 んでもって、あと16時間。
いや、51-75% から 76-99% に変わったみたいだから、おそらくあと 25% 弱必要だろうね。 ざっと$40〜$50ってとこかな。あと4〜5人か・・・。微妙な線だな。
76〜99%か… てっきり76人・99%かと思った 微妙だねぇ
フレームワーク使うときってユニットテストどうしてる? 自作のフレームワークの人なんかはテストも込み込みで構築してるのかな
俺も結構お世話になったので $10 送って来た
Finishになってるね $220到達したのかな?
$20 のお布施入れてみたら 100% になった。 1000 げとずさー?
もしかして寄付してるの日本人が半分超えてないか?
>>15 ,50,54,56で$70か
こりゃー頑張ってもらわないとな
おーGJ! 半分あきらめていたがジャパニーズマネーをたくさん注入したな カーも喜んでるだろう
また日本が馬鹿にされるんだ。金貰うならあの国だって
カーは良い奴だからそんなことないよ
ボブも良い奴だよ
ゲスワークそろそろっぽい雰囲気だな 「PHPらしい簡単フレームワーク」という新しい地平を 切り開いてゆくか?
MVCでデザに依頼すること考えているんだけど、 普通のホームページと違ってむずかしいよね?
mojaviの user , request 各クラスのメンバ変数に$attributes ってやつがあるけど、どうちがうの?
うちの場合はデザに通常のHTML組みまでやってもらって、 データ部分を後でプログラマがテンプレートエンジン用変数等を 埋め込むってやり方してる。
>>65 ,67
1.67さんと同じパターン(ただこれだと手離れが悪い)
2.受け渡しの変数名等いれたダミーページを作って渡す
を相手を見て決めます。
ところで「デザ」って言うの?デザイナ(ー)としか言ったことないんだけど
デザって言わないと格好悪い?
デザってCSSちゃんと使えてる?
J2EEパターン本読んだら Mojaviの思想がすんなり理解出来た ほとんどそのまんまやん 逆にJ2EEパターンを知らずにMojaviを理解しようとすることは かなり徒手空拳だったな…
>>72 みたいだね。
要約しますた。
Seanのあとを引き継いだTylerがAgaviサイドにアプローチして、
MojaviとAgaviがマージできないか対話がもたれた。話し合いの結果、
1. フォークから時間が経ってないのでMojaviとAgaviはそんなに違わない。
2. TylerはMojavi開発を透明化して、コミュニティを発展させたい。
3. MojaviもAgaviも目指すものは同じ。
Agaviチームの意見としては
- Agaviは0.10.0をめざし、そのあと(もしくは同時に)Mojavi 4の開発にシフト。
- Mojaviは3.0.0-DEVの開発を中止、4に注力。
- Agaviの良い点 (phing integration, unit tests, public development model) をMojaviに持って行く。
- Mojavi4は完全な再設計になり、以前よりもリリースサイクルが短くなる。
これはいい流れだ。 しかし Mojavi4は完全な再設計かよ php5で安定したものがホスィ
こりゃまた意外な流れだな
使わせてもらった側なのにこんなこというのもなんだけど、振り回された感はあるな。
Mojavi4は出ないに3000点。
guessworkの プロパティーがあれば勝手にほりこんでくれる機構をパクって LogicやDAOを勝手にほりこんでくれるようにしたよ オリフレ最高☆セフレも最高☆
guesswork のclass method Filterってどう使うのでしょうか? コントローラのリファレンスを受け取ってごにょごにょってもんだと思って たんですが、リファレンスが受け取れないようになってる。 そういう使い方を想定したもんじゃないの?
XOOPSの開発者が作ってるXOOPSモジュール開発用のexFrameなんてフレームワーク もあるんだな
minahitoさんのやつね
mojaviでつくったものとデザインの組み合わせ難しいです。 URL_FORMATを 1 にして各モジュールで画像をわけるんですけど 最終的な微調整の際 dreamweaver みたいなアプリでいじくることできないし。
Ruby on Railsはどうも馴染まないというか・・・ ぶっちゃけPHPにRailsのようなコマンドでスケルトンを生成して〜のような 開発体系は合わない気がするんだけど。 そりゃ大規模開発には便利なんだろうけどね、漏れ的には旧guessworkみたいな こじんまりとした小規模Webアプリ用フレームワークのほうが肌に合ってる。小物だな漏れも。 そのguessworkも新しいのはRailsっぽいみたいで、ちょっと残念。
>>84 Railsのスクリプト群は単にスケルトンを生成するだけにとどまらず、
メソッド単位でのベンチマーク、
リモートでも使えるデバッガ、
プロファイラ、
Rubyのコードを記述してDBのレコード管理ができるコンソール、
アプリケーションの任意のメソッドのみを手動で実行するツール、
開発用httpd、
単体および結合テストの実行、
なども含んでいるから、PHPでもそこまでできるようなものがあれば
便利なのかもね。
DBのテーブル定義からクラスを作ってくれる機能が気になるなぁ DAO周りがどうもキレイにかけないから
Kerrが急速にやる気を失った背景にはRailsの存在があったのかも? と妄想してみる。
88 :
sage :2005/08/29(月) 00:36:22 ID:s8UfImjl
>>82 全部CSSでデザインしたらPHPeclipseの入ってるeclipseでViewしながら微調整可能
どなたかLLDNに行ったヤシはいらっしゃいませんか?
なんでテンプレにprado入ってないの? 一番まともに動いてるプロジェクトだと思うんだが
1が知らなかっただけでしょ。 どんなフレームワークか総括してくれると みな嬉しいと思う。 次スレ(あるかどうかはわからんが)のためにもなるし。
PRADO: 「PRADO is a component-based and event-driven Web programming framework for PHP 5.」 というわけで、イベントドリブンなコンポーネント指向のフレームワークでPHP5専用。 DelphiやC#のような開発体系が取れる(らしい)。サンプルみるとDelphiまんま。 でもこういうフレームワークってRADがあって初めて成立するんじゃないかと思うんだが、 実際使ってどんなもんなんだろう。 RADが自動生成する部分も自力で書くのはあんまり想像したくないんだが・・・
ざっと見た感じではJavaのJSFの真似みたいなもの? ていうかこういうフレームワークを使うと PHPの存在意義が全くない気がするような。
>94 本末転倒とはこのことだ
>>92 >RADが自動生成する部分も自力で書くのはあんまり想像したくないんだが・・・
RADまでいかなくとも、PradoマスターでコンポーネントやDWのタグも生成してくれるから、
けっこう便利ですよ
Railsの真似をする方向性は間違ってないと思う。 (Strutsを真似する事に比べれば。)
俺もそう思う でもPHPをメインに扱う1PHPユーザとしては Railsとかみたいにその言語の特徴を生かした 何かオリジナルの新しい方向性を持ったフレームワークが PHP発で出て欲しいなあと願ってやまないのと、 そういうの作ってみたいなあと思いながらも 仕事こなすだけで精一杯なしがない現実 PHPらしさ、ってなんだろう、、、
新guessworkはまだかいな
オリジナルかどうかなんてどうでもいい。 パクリでもなんでもいいから楽に開発できるやつが欲しい。
Railsは実行パフォーマンスが…
結局、自動生成をがんがんしてくれる ツールが普及しないと楽にはならないでしょう。
>>101 > guesswork.jpがホスティングされているのはカリフォルニア州サンディエゴなので、
> 遅くとも現地時間の31日中にはリリースしようと思っています(日本時間だと1日の
> 午前8時くらい?)。
だそうな。
guesswork-classicを使ってみて、 このユルい感じが気に入った。 0.9.0も楽しみだなー。
なんとなくMojavi一辺倒だった潮流も変わって来たね
>>107 mojavi一辺倒だと思ってたのはあなただけよ
パラメータの受け渡しが面倒くせーと思って ロジック側でリクエストパラメータの受け取りや viewへの荷物梱包までしてたら Action見ても何を渡して何を受け取ってるのかが分からなくなり、 ものすごく分かりにくくなってしまったorz 面倒くさくても受け渡しはちゃんと書かなきゃダメだね(゚∀゚)アヒャ
>>108 >>107 じゃないけど、前スレではMojavi一辺倒な流れも確かにあったね(Phrameスレだったのに)。
そしてこのスレではMojaviが堕ちていく様子が描かれている。
Mapleのサイト覗いてみたら
ActiveRecord云々。
流れはRails方向に向かってる模様。
>>110 Mojaviはちょっと動きがなさすぎ…
PHPの世界に
汎用フレームワークの概念を広めたのは功績だと思うけど
>>110 動きがなかったのはそれなりの理由があったわけだし
これからは動いていくんじゃないの?
agavi次第。
>>113 AgaviはMojavi4に統合だとさ。
Mojavi3は放置プレイだと。
もうMojavi3で開発始めちゃったよ!っていう早漏がいそうだなぁ・・・。
・・・、俺だよ俺・・・。
おいモジャビ(日本)のサイト晒せ。
>114 >73
ていうかagaviはあれである程度の完成系だから、いいんですよ。 その他についてはむしろPHP5.1次第というかなんというか
Mojavi2を今まで使ってたんだけど、そろそろPHP5かなと思ってagaviインストールして動作テストしてるとこなんですが。 ぶっちゃけ運用するものは今までどおりMojavi2で作って、PHP5対応についてはMojavi4待ったほうがいいでしょうか?
>>118 それは状況や能力次第だろ。
M2で既に貴重な財産を築いているなら、今agaviにする必要は全くない。
逆に再利用できない糞コードばかりで作ってたなら、待つ必要は全くない。
>119 コードは試行錯誤があるので綺麗なのも糞なのもあるけど、基本的に再利用可能なようにはなってる。 では次もMojavi2で行ってみます。どうも。 ところで、Mojaviとか他フレームワーク用に、モジュール単位で公開してるサイトとかってありますか? そもそも私が作ると、PearのMojavi用ラッパーみたいなものが幾つか出来てから コアの部分のコードを実装して完成(まぁここが一番手間なのだけど)、みたいになるのですが皆さんどんな感じでしょうか?
agavi+propelでRailsみたいに、Create, Read, Update, Deleteがモデル一個呼び出すだけで できるようにしてる
>>114 agavi は mojavi3とほぼ互換だからガンガレ
M2は曖昧すぎて、部屋の片付けもまともにできない俺ではぐちゃぐちゃになってしまう。 M3やagaviくらいが丁度いい。
124 :
nobodyさん :2005/09/03(土) 08:17:31 ID:gPh989uD
Ethnaを使ってみようと思ってるんだけど、 誰か使ったことある人いる? 感想とか聞かせてくれるとうれしい
EthnaとかMojaviとかMapleって本当に使われてるの? 仕事で使えるか調査中なんだが。。。
>>125 まず社内で使ってみる!
社内だとなにかあっても「ごめんなさい、直します」で通用するから。
Mojavi3をカスタマイズして使ってるって所は聞いたことある。 EthnaはPHPの最新版(4.4.xや5.1.0RC1)だとそのままじゃ動かない。 Mapleも3.0.1が出るのを待つべき。
128 :
125 :2005/09/04(日) 16:46:31 ID:???
そうですか、やっぱりJavaかなぁ。 agavi、、も同じですよね。 PHPの手軽さ、開発効率の良さ、に期待したいのですが、、。
>>128 Movaji2なら3案件くらい使った。DBの管理プログラムとか
ショッピングサイトとか…。正直、開発効率というのなら自分で
フレームワークというか必要な部分を作ってもいいかなという感じ。
今Mapleと格闘中。途中を客にみせられる大根はよいかな。
あと結局中途半端になってしまったけど(これは自分のせい)
テストファーストもどきでも作れるのはいい感じ。
自分が追いついてないなと感じました。まぁ独りで作るなら
MojaviもEthnaもMapleも一緒。大根分Mapleかな。
130 :
129 :2005/09/04(日) 21:40:40 ID:???
ごめんMovaji2にはつっこまないで。反省してるから。
言われないと気づかなかったw
あれ、俺なんて
>>132 まで読んでまだ気づけない……
まぁ、なんだ。 movaji の検索結果 約 88 件 mojavi の検索結果 約 53,300 件
どうして間違うんだ?キーボードのキーの位置が近いわけでもないし。
ガチャガチャ打ってると、たまーに文字が前後する時はあるな 明らかに自分のミスだけど、俺のタイプが早すぎてマシンがついてきてないんだと思うようにしてる
こういうくだらないスレ違いネタになると、急に発言者が増えるなw
ちょwwwwおまえらwww PHPCon2005 で中井たんと dino が大盤振る舞いしてくれた CD の事もちったぁ思い出してやれよ。
だって、Mojavi3終わっちゃったじゃん。
それもらったけど、みるまえにどっかいった。
5.1がRC1まできてますよ
ビスケットなんかはそれで書かれたフォーラムのサンプルがあるから良い
フレームワーク乱立しすぎw ビスケットとかケーキとか何でRails系はお菓子関係?
多様性はあったほうがいいが、乱立はイクない! 要はきちんと継続的にメンテナンスしてね。 漏れが言うのもなんだけど。
148 :
nobodyさん :2005/09/06(火) 14:58:45 ID:aYh8x/z9
メンテやフィードバックにかかわってる人数少ない 実戦投入の話題(具体例)があまり無い PEARとかでやりくりしてた人から見るとシステム全体が助長に感じてしまう →自分でつくったほうがいくね? て感じ?
探すの面倒なので誰か公開されてるフレームワークリスト作って。
あのう,結局,Maple の 3.0.1 って……? 作者さんリリースをまとめる気なくしちゃってるのかなぁ……
>>148 お前はこのスレ来なくていくね? て感じ?
>>153 おぉっとほんとだ情報サンクス
CVS版でも大差ないんだろうけど
どうも性分でスナップショット版みたいのを使う気になれなかったのだけど
これでやっと使ってみることができるわー
156 :
148 :2005/09/07(水) 04:13:36 ID:VkYxruOZ
>>154 ごめん、このスレ毎日何回もチェックしてるよ
フレームワーク乱立の理由について思ったこといっただけ
>>156 チェックしてるだけじゃなくて、いつも同じこと書き込んでるよね。
158 :
148 :2005/09/07(水) 04:27:27 ID:???
書き込んだのは148がはじめてだけど?
>>158 お前はこのスレ来なくていくね? て感じ?
160 :
148 :2005/09/07(水) 04:31:10 ID:???
わかりました さようなら
>>148 >実戦投入の話題(具体例)があまり無い
>PEARとかでやりくりしてた人から見るとシステム全体が助長に感じてしまう
PEARはつかってるの?PEARの実践投入の具体例ってどんなのがあるの?
162 :
148 :2005/09/07(水) 04:46:27 ID:???
実はクラスライブラリとか使ったことありませんし 自分で書いたPHPコードをうごかしたことありません ごめんね
>>156 別に乱立ってほどの数でもないだろw
ためしにjavaとかで探してみろよ
特にビスケットなんて無理やり穿り出したようなもんだし
164 :
148 :2005/09/07(水) 05:59:16 ID:???
今日(昨日か)会社でフレームワーク使ってみればって提案したのさ そしたらやれ情報が少ないとか、 つかい慣れたライブラリのほうが速いとかいわれてさ、 あげくのはてに「こんどうちで最強のフレームワークつくりましょうよ」 とかいいだしてさ。 まるごとPHPと黄色いやつ職場用に買って持ってったのに 「うはーそれ持ってるwww」みたいなノリだし で、強烈なディファクトスタンダードみたいなのができれば、 疑いも無くそれ使うくせにっておもった。 でこのスレみたら146と147があったから148を書いた。 もう寝るからレスすんなボケ
>>164 会社の上は現状維持したいアホばかりだから気にすんな
>164 お前そのアホばかりの中に入っててお似合いの職場だからから気にすんな。
164に噛みついてる奴はいったい何があったんだろう… ほのぼのしてたスレなのに無駄に荒らすなよ
ずっと不思議だったのだが バテレンのフレームワークやライブラリの情報とか お前らどこから仕入れてくるんですか?
>>164 誰がそんなレスしろって言ったの?で、
PEARの実践投入の具体例ってどんなのがあるの?
>>168 google
気になった情報を調べていくうちに、連鎖的に付加情報が入ってくる。
まぁ、日本のサイトだけじゃまず情報は補えないな
>>172 あいまいに発言して見栄はらずに晒したらどうよ?
>>173 たとえば、ビスケットとかなんかはPHP-on-Railsで検索して出てきた。
こんなのが見栄に見えるなんて、かわいそうな子だなw
別に英語でもかまわないから こんなフレームワークがあるよって短評と共に 書いてあるサイトがあれば幸せになれると思わない? 試してみないとわからないって意見もあるが RailsタイプであるとかJSFタイプであるとか ある程度の分類が分かれば絞れるわけだし。 wikiでも作ろうかな。
最初は糞めんどくせーと思ってた英語ドキュメントも 最近はわりと読めるようになってきたな
かな。じゃなくて、作った。くらいフットワークが軽くないと ずっと俺の背中ばっかり見ていることになるぞ。
>>179 さんの背中見ているだけでも良いのでお願いします。
googleのfirefox拡張が重宝。 単語調べる手間が省ける
DOS窓でExcite辞書引くスクリプト作ってある Perlで。
コンポジットビューパターンとかで viewに渡す変数を得るためのクラスを呼ぶ時って、 list($hoge,$fuga,$moge,$nuko) = $poge->piyo() みたくするのか、 $poge->piyo($request) みたくして$requestに入れてもらうのか、どっちが定石? 前者だと、何を受け取っているのか分かりやすいけど、面倒くさい。 そしてある程度コピペコーディングをしないといけなくなる。 後者だと、記述が楽だし、 後でクラスを書き換えても、呼び出し側では書き直す必要がないけど、 何を受け取っているのかは、呼ぶクラスの内部を見ないと分からない。 マジ迷ってます。 教えていやらしい人。
>>181 ツールバー入れてたけどこんな機能あるとは知らなかった
すげー便利じゃん
サンクスちんぽ!
185 :
184 :2005/09/08(木) 05:04:51 ID:???
Mojaviで jsとかcssのファイルはどこに置いていますか?
187 :
nobodyさん :2005/09/09(金) 18:57:54 ID:y9gKBfXh
PHPが範としていたJava界では ライトウェイト方向に流れてるから 今、PHPでどんなフレームワークを選べばいいのかは 微妙だねぇ。 Mojavi/Agaviは重い気がするし かといってMapleやguessworkもまだ過程にあるし。
ViewHelper導入したら 随分分かりやすくなったわ。 PHPフレームワーク文化圏で ViewHelper軽んじられすぎてね? ライトウェイトフレームワークとも親和性高いと思うんで 考えてみてくれ>エバンジェリスト達
>>188 Agaviはかなり軽いだろw
あ、ごめん。気がするだけで使ったことないのね。
>>190 動作はどうか知らないが
「考え方」がライトウェイトじゃないじゃん?
そもそもEJBを利用いた開発とPOJOを利用した開発を 対比してライトウェイトって言われてるんじゃないのか? JAVAでいうライトウェイトを引き合いに出してる 時点で見当違いなキガス とmojavi信者が反論してみる
193 :
184 :2005/09/10(土) 23:41:22 ID:???
ベタだけど東芝の翻訳インターネット買ってきた googleツールバーのチップ表示くらいがちょうどいいんだけど (翻訳インターネットではポップアップウインドウに表示される) まあ普通に便利ですわ
いまPHPcakeを試してる。 Railsは知らないけど、全体の見通しはかなりいい。 cakeの流儀にさえ従っていればすごく楽をできる。 まぁ、まだバグはかなりあるけど。 AjaxHelperのドキュメントが無いけど、Railsの奴を読めばいいのかな。 でも、cakeをさわっていちばん感心したのはtracだったりする。 そろそろcvsからsvnへ乗り換えたいなぁ。
cakephpはSVNがsslなせいで、subclipseから引っ張り出せないから駄目。
じゃぁstoneとかでsslトンネルを掘ればいいんじゃないのかな。 でもふつうのsvnクライアントを導入すればsvn coと打つだけなのに
197 :
nobodyさん :2005/09/11(日) 23:51:20 ID:9VoVbPCa
PHP使ってるヤフーはフレームワークになんか使ってるのかな。
さあ皆で乗り換えよう
小規模なWebアプリに特化したフレームワークって出ないもんかな? BBSとかショッピングカートとか、一般にzipで固めて配布するようなもの向けの。 RoRのようなのはまずコマンドで開発環境をそろえるけど、それとは逆で コマンド1発で必要なファイルをまとめてzipにパッケージングしてくれるような機能つきとか。 guesswork classicが近いアプローチだったと思うんだけど、似たようなフレームワークってない気がするんだ。
特化するとどうなるの
Mapleが3.0.1になりましたな
203 :
202 :2005/09/13(火) 16:07:17 ID:???
保存はファイルベースみたいだな 可用性を考えると DBで良くね?って気もする。 どのあたりに需要があるのだろう?
>>203 「without the overhead and the complexity of an SQL database」だそうですよ。
>>202 別にデータベースセッションハンドラ使ってりゃ、
普通にできるし
>>205 Sharedanceはセッションデータ専用ってわけじゃなくて、単純なハッシュみたいな
もんだから、なんでも詰め込めるけどね。
sharedance_store('key', 'content');
中規模くらいまでなら便利そうかな? 規模が大きくなるとどうなるか不安がある
>>208 数千〜数万人が同時にアクセスするようなの。
セッション用サーバ自体を分散しないとやっていけないような。
大規模なSNSやWeblogサービスなんかはそれなりに セッション管理の土台を強くしないとダメなんじゃないかな あとはセッションがクリティカルな金融関係とか
>197 ヤフーはLISPだとばかり思っていたよ。 そういえばPHPのページもあるね。
>>211 SNSなんて会員以外は見れないんだから、知れてると思うんだが。
>>213 mixiでさえ130万近いんだが、その数をたかが知れていると?(;´Д`)
>>212 Yahoo!がLisp使ってるのは本国のShopping部分だけで、
それも買収した会社がLispで開発していたから、ってだけじゃなかったかな。
>>214 mixiのアクティブユーザが130万人いると思ってるの?
手間をかけさせるな
ひょっとしていちいち説明しなきゃならんのか
話が噛みあってなさそう
もういいよ、マンコの話しようぜ。 同棲してる彼女が俺が寝てると思って毎夜オナニーして困ってる。
なんか自分のこと誤解してそう
224 :
nobodyさん :2005/09/14(水) 23:52:36 ID:SictETF/
Web Application Component Toolkit (WACT)
http://www.phpwact.org/ これが世界的にそこそこ有名なPHPフレームワーク
だという情報を入手しました。どなたが調査お願いします。
225 :
>>224 :2005/09/15(木) 02:33:20 ID:???
そこそこ使えるらしい
226 :
nobodyさん :2005/09/16(金) 04:57:46 ID:3ASb8eFe
バリデートってフィルタの中でかけるのが普通かな?
>226 簡単、共通そうなものはそうなるんですかね?
転送量で鯖屋から文句が来たから 出力をバッファして改行を削除する関数を 既存サイト(非フレームワーク)に適用した ファイル修正しまくりで こういう時にフィルタが役に立つんだなーと実感した
ヘッダ見て対応してれば圧縮すればもっといいんじゃないかな。 そんなのWebサーバでやれとも思うけど。
>>230 Apacheだったら
つ mod_gzip
まあデフォルトor設定のみでやってくれって気もするけど
232 :
229 :2005/09/18(日) 16:46:51 ID:???
一気に変えるのも不安だったから zip圧縮はphp側のハンドラでやったよ zipが受け取れないモバイルに対してもパケ代少し減らせるから まぁいいかなと。 昔あったみたパケ割みたいなフィルタ作ってもいいかもしんない。
改行削除くらいじゃいくらも圧縮できないんじゃないの。
まあ、確かにそうなんだけど でも×アクセス数になると馬鹿にならないかなと。 一回書けばコストもかからないしね。 しかし昔書いたプログラムを今いじると汚いこと汚いこと… アンチパターンやりまくりで保守性最悪 フレームワークはある程度枠にはめるから 矯正器具としての役割もあると思う
235 :
227 :2005/09/19(月) 23:44:54 ID:???
>228 アクションの中にビジネスロジックを書くのはイケテないからコンポーネント作って呼ぶんですかね?
>>235 ビジネスロジックはモデルでやってください。
>>214 幽霊ユーザちゃんと含めて考えてますか?
最近Mojavi/Agavi静かだな…
日経システム構築に PHPフレームワークの記事があった 1Pだけだけど
240 :
nobodyさん :2005/09/23(金) 07:18:01 ID:7QvlMC8T
PHP5の新機能に対応したフレームワークというのはどのくらいあるんでしょうか? ・例外による(フレームワーク側の)エラーの管理 ・interfaceや抽象クラスを使った継承による機能の実装 ・オブジェクトの逆参照 あたりを利用すると、かなりすっきりしたフレームワークが書けるんじゃないかなー、と、俺フレームワークを書いてみたりしてるのですが……。 ……ますますJavaとの違いが無くなってしまう様な気もしないでもありません(^^;
mojaviつかったら、header("Location: http… ってつかっちゃいかんの? $controller->forward(… に統一すべき?
>>241 $controller->redirect($url)を使うんじゃない?
うむ。
>>242 しっかし$controller->redirect($url)って使いづらくないか?
$controller->redirect($module, $action)にしてくれたほうがありがたい希ガス。
まー大した違いじゃないんだけどさ。
ラッパ書いたら気持ち的にずいぶん楽になったもんで。
ビミョーにチラシ
>>244 俺もモジャ使ってる時それ思ったな
module,actionをurlにするメソッドあったよね。
あれ呼んでから呼べということなんだろうけど。
>>245 だったらフレームワークが自分で自動的に呼べって話だよなー
で、
>>244 に戻る、と。
Agavi で標準装備して貰いますか。
>>245 getControllerPathでしょ?
>>248 M2にはあったのにM3にはなくなってしまった。
アガビにもない。
Mojaviでサブテンプレート実現する時って ActionChainにregisterしてexecuteしてfetchした結果を Viewに渡してる? それとも他のやり方があるのかな?
252 :
250 :2005/09/26(月) 19:59:45 ID:???
>>251 ありがとう
Mojavi系サイトはかなり回ったつもりだったけど
このサイトは初めて知ったよ
>>244 クエリがmoduleとactionだけなんてことまずほとんど無いだろ。
254 :
244 :2005/09/27(火) 07:02:06 ID:???
まあ実際書いたラッパの引数はmodule、action、params、プラスアルファみたいな感じだけど、 漏れの場合サイト内でリダイレクトすべき部分は大概moduleとactionで事足りたな。 リダイレクト自体そんな頻繁でもないし。 ヒント:ケースバイケース
Agaviも全然動きないってどうなんコレ 仕事で使わないでヨカッタよ( ´ー`)フゥー...
(Moj|Ag)aviを仕事で使ってる香具師なんかいないいない。 みんな本当は趣味でやってんだよ。 あー暗い暗い。
Mojaviにはメンテナを迷走させる呪いがかかっているんだよ ホープ・ダイヤモンドのように・・・
上位でRequest->Parameterを 取得していて、 ActionChain中の子Actionでも同じパラメータを使う時って、どうしてる? 1 Request->attributeにでも入れ直す 2 もう一度request->getParameter()する
>>251 そこ見てやっとデコレーションパターンを理解したよ
slotでテンプレートに渡す表示用パラメータを切り分けてるのが便利そう
MapleやEthnaにCommandパターンが使われてるって 本に書いてあったんだけど本当?
Actionがあるのがコマンドパターンだよ ほとんどのフレームワークはそれでは?
>>254 ヒント:リダイレクト自体そんな頻繁でもないし。
>>262 まだ埋まってないとこポコポコあるじゃん
なんかサブテンプレートってさー クライアントサイドプログラムだったら、 サブウインドウとかの規格を定めた アピアランスクラスを作って、 そこにモデルデータを渡して実現するじゃん? アピアランスクラスはリプレース可能にして。 一方Mojaviとかのウェブアプリフレームワークって 各テンプレートファイルをひな形にした サブテンプレートを先に作っておいて、 親テンプレートに後からハメハメするやり方じゃん? このやり方だと、親テンプレートとサブテンプレートに 一貫したアピアランスを実現しにくくない? なんていうか、 サブテンプレートシステムを ひとつのクラスにまとめておかないと アピアランスのリプレースがしにくい、と思う。 どうなんかな、このへん。
なんかカタカナばかりだな。 今風なのか?
いや日本語でどう言えとw
ああ、たしかにナウでヤングなモボっぽいな
アピアランス = 外観 テンプレート = 雛形 リプレース = 入れ替え ハメハメ = 嵌め込む サブ = 男色
>>270 ・・・男色の雛形は
単一化されないと
見た目ではハメ辛いと思う。
どうなんかな、このへん。
【意訳】
ぱっと見、ゲイはゲイらしくしてくれないと
そのときになってびっくりする。
どう思いますかみなさん。
【私の意見】
そー思います。
カタカナ語は「一般名詞ではなく、テクニカルタームですよ」という サインだから 単なる訳以上の機能性もある。
273 :
266 :2005/09/29(木) 11:21:35 ID:???
サブテンプレート間で一貫したアピアランスを実現する方法を考えたよ(´・ω・`) 共通プレゼンテーションロジック保持クラス GrobalViewHelperを作っておいて どのテンプレートを作るときにもそいつを派遣しておく…(・∀・)コレダ!!
Globalだった(´・ω・`)
いいかお前ら、ド素人の俺が今からすっごいこと言うぞ・・・・ 気の弱い奴はパンツ脱いどけ。。。。 「っていうかフレームワークって何だよ!?」
>>275 『枠組み』の事です。従来のライブラリと比較すると
ライブラリではそれを使ってどのように作るかを必死に考えなければならなかったのが
フレームワークでは、このように作りますってのがフレームワーク側で決まっているので
共通できないロジックやパラメータだけ与えればアプリケーションが出来てしまう。
どの程度勝手に決められているのか?ってのが フレームワーク選択基準のひとつになり 例えばStrutsなんかは自由度が高い事で有名。
>>276 親切にありがとう。
でもド素人にはまだちょっと理解しづらい。。。
つまりアレか、PHPでも、VBみたいにマウスでフォームやボタン配置できるとか??
279 :
名無し :2005/09/30(金) 19:47:16 ID:gpQXP9hq
どうもこんばんわ
280 :
nobodyさん :2005/09/30(金) 19:47:48 ID:gpQXP9hq
はじめてです
281 :
nobodyさん :2005/09/30(金) 19:49:19 ID:gpQXP9hq
いきなりですけどおちます
和製フレームワークって Viewクラス用意してないものがほとんどだよね。 実際Viewでやることってテンプレートにassignするだけ みたいなもんだし。 面倒なだけのViewイラネ(゚д゚)、ペッ
じゃあ、いいじゃん
あとMojaviはRequestのattributesと UserのParameterが役割的にカブってるのが美しくない。 シンプルイズベストなんじゃい(*゚д゚)、ペッ
セッションの実装がねぇ。 逆にどうすりゃいいんだ?今ならいい方法があれば提案出来るんじゃないか。 つーかおまいらがどうやってるのか不思議で仕方ない。 どう文句つけようと、PHP5 だと現状、俺 Maple, Mojavi の二択だと思うんだが。 それ以外のフレームワークを実戦投入したという話は聞いたことないし。
>>285 両方とも汎用コンテナ
かぶってるからuser->parameterはあまり使わないけど
やはりフレームワークの「意味」と「利点」、「用途」がサッパリわからない・・・ 実はこれらを説明するのって難しい?
>>288 解っちゃえば何てことない話なんだけど説明しようとすると難しい
例えばDBとか使ったサイト作るっしょ
んで別のサイトを作る時に,前作ったサイトのパーツを流用したりするっしょ
で,それを繰り返してくと,今度は逆に,パーツの方を流用しやすく作るようになるっしょ
そういうパーツが色々な機能を網羅していくと
最終的には「サイトごとに同じような処理はみんな共通」とか
「ここをちょっと変えるだけで各サイトに適用可能」とかになっていく
その集合体の完成形がいわゆる「フレームワーク」
……ってな説明でどうかなぁ?
# もちろん今あるフレームワークが上記のようなボトムアップで作られたものなわけではないが……
>288 小規模の案件やってる限りはわからないし、使う必要も無いよ。 フレームワークの利点がわかる状態、というのがフレームワークが必要な状態。
>>289 なるほどぉ・・・、ってことは、いま自分がやってる作業(この部分は他でも
使いまわしやすいように作ろう)ってのも、ある意味で自作フレームワーク??
それを追及していくと、ほとんどどんなサイトやシステムでも部品は共通なものばかりだよね。
よっぽど斬新なものでない限り、既存の部品を既存の組み立て方すればいいだけだよねぇ。
フレームワークがそういうものだとしたら、Webアプリ作成が劇的に簡単になりそう。
・・・でもMojaviとかの説明を読んだりすると、もうそれ自体が難しく感じる。。。
>>290 ってことは、俺はまだ必要な状態ではないのかな・・・。
>>291 ある意味「俺フレームワーク」とかいわれるものがソレなんだと思うよ
そして他人が書いた「俺フレームワーク」は慣れるまでは大抵使いにくい
ただ自分より頭の良い人が書いたものならたぶん慣れれば自分のより効率良くなるのだろう
でもそれは今まで自分が思いつきもしなかったような発想で作られていたりするから
学習曲線の最初はだいぶきっつかったりする
>>290 の言ってるのは
慣れちゃった後なら小規模案件でも使わない理由はないと思うけど
小規模案件のためにわざわざ慣れる必要があるかってーと
それではC/P比が悪い,ってことじゃないかな
大規模だと少しでも効率良くなるとかける人数で効くので大きいのと
よく整備されたフレームワークはそれに則ったコードを書けばいいのでコードが変に発散しにくいのが利点
デザイナ含めて3人ぐらいの小規模しかつくらないけど 俺は「俺フレームワーク」捨てちゃいたい時ある。糞コードだもんなあ
294 :
290 :2005/10/01(土) 14:45:40 ID:???
>291 覚えると気持ちの上での楽さはあるけどね。 MVCの切り分けや入力値チェックなどを、どこに書くべきかを含めて明示的に示してくれるわけだし。 でもフレームワーク使ってなかった頃はそんなの自分で勝手に分けて書いてたわけだし 数週間くらいでできるような案件を一人でやるなら 無いなら無いで普通に作れるし、大して手間も変わらないように思う。 そんなこと関係なしに、興味があるなら使ってみるのが良いよ。
295 :
290 :2005/10/01(土) 14:47:50 ID:???
>292 素晴らしいフォローが入ってる。 まったくその通りです。サンクス。
フレームワークは楽をするためのものと言われて、 実際そうなんだけど、 その楽さって「記述量が少ない楽さ」じゃないよね 記述量は、逆に迂遠に思える時も多々あって、 俺なんかは「ハァ?どこが楽なんだよ。面倒くさいだろ」と 反発を感じながら自分なりのお手軽メソッドを追加してたりしていって 気づいたら何だか見通しが悪くなってた。 提供者は 「コーディング量は、そんなに減らないし、逆に増えるかもしれません。ただし、長い目で考えると楽です」と言ってほしいところ。 最初から「とにかく楽したい」の精神で行くと、 その良さを理解するのに結構時間がかかる。
単純なものを作るとしても、フレームワーク使って作ると、 余計なこと考えないで済むから楽ちんだと思ってしまう漏れは負け組?
とりあえずここまで説明してもらってもまだフレームワークの良さが イマイチ分からない俺は、ちまちま自力でやっていこうと思いまつ。 そうしてるうちにフレームワークが必要になる日が来るかもしれない。 むしろ最初の基礎は全部自分でやれるようにしといたほうが後々いいかも。
ちまちまアセンブラで大規模アプリを書けるようにがんばります。ということ? 馬鹿馬鹿しい。
>>299 なんでいきなりアセンブラが出てくるんだ?
比喩にしてもおかしいし???
小さなプログラムを個人で書きなぐってるって人なんじゃないの? 仕事で似たような案件を多くあつかっていると、大枠で共通することが 多いことに気づいてくる。それをくくりだして同じ事を何度もしなくても いいようにしようと思うわけだ。 言語レベルではライブラリとして共有できるようになってる。 さらに扱う対象によっては毎回似たようなプログラムの流れになることがある。 その似たような部分の構成を使いまわしできるようにしておくと、効率があがる。 299さんの言っていることも極端ではあるけど考え方としては同じこと。 アセンブラがあれば何でも記述できるけど、WEBアプリなんか書く時にはPHPが 適しているのでPHPで書く。毎回アセンブラからまずPHP(あるいは俺言語)を作って 仕事に取り組むってのは能率悪そうでしょ? ただフレームワークを必要としない人や場合もあるのだから 290さんの言うように 必要としていない状況なのかもしれない。
ちょっと流れ無視なのかもしれませんが、 クラス・ライブラリとフレームワークの違いって何ですか? ライブラリ群=フレームワーク?と思っているんですが。
・画面遷移の仕組み ・入力データのヴァリデーション ・HTML表示のためのテンプレートエンジン ・セッション管理 ・アクセス制御 あたりの機能を体系的にまとめたものが、いわゆるフレームワークと言っていいと思う。 特に上3つはフレームワークと呼ばれるものには必ず存在するかな。 ただ、それぞれの機能単独のライブラリもあるから、そういうライブラリを自分で組み合わせても構わないし、 そっちの方がいい場合もあるだろう。
保守性のメリットもあるお
フレームワークの意味や利点が理解できない漏れは、 当然クラスの良さも分からないし使ったこともない。 「良さが分からない」というか、「使用法を習得するほうがめんどい」。 だからPEARも一度も使ったことなく(ちょっと調べて断念)、 よく使う機能については「俺ライブラリ」(せいぜい自作関数)的なものを作って ファイルにまとめて、それをincludeしたり部分的にコピペして貼ったりして再利用してる。 それで十分便利だし苦にも思わない。
>>305 苦にも思わないならそれでいいんじゃないかな?
上で大規模小規模って話が出てきてるけど
大規模→大人数となってくるとそれを苦に思う人も出てくるだろう
その時になったらまた考えればいいと思う
繰り返しになるけど,最初の学習曲線をよじ登る手間が,
初めから登らなかった場合の手間の総量を上回らないなら,登らない方がトータルで良いしね
ただ経験から言わせてもらうと,
仕事でPHPをやってる限り,結果的にはたぶん総量を上回ることになると思う……
まあ、PHPは標準関数の機能が多いから、PEAR使わなくても構わない場合は多いけどな。 Perlの場合、CGI、DBI、HTML::Template、CGI::Sessionあたりを使わざるを得ないけど。 ただし、PHPは名前空間が区切れないから、クラスを使わないとグローバル変数名の衝突をさけられない。 なんで、処理がある程度複雑になってきたら、クラスを使うしかなくなる。
自分1人で開発してるうちは フレームワークの恩恵はそれほどないかもしれない 小規模のものを作るのには必要ない 単純なメールフォーム作るのにフレームワークなんていらない 複数人でそれなりに規模のあるものの 開発をしようとするとそれぞれのスキルと作り方で 同じ処理の流れのものを作っていても コードや構成はばらついていく だから遷移方法や処理のプロセスはこういうやり方で ここにそのコードを置いてくださいという 取り決めがフレームワークで チーム全員がその取り決めにならって開発していく事で 誰が書いても全体の構成がある程度統一されていく部分が フレームワークを使う事の一番のメリットなんじゃないのかな
PHPには、PerlのCGI::ApplicationやJavaのStrutsほどメジャーなものはないし、開発者全員がそのフレームワーク自体を覚えないといけないってコストがかかる。 他にもデメリットとして、smartyのようなテンプレートエンジンを使うと実行速度がぐっと下がるし、 標準であるべきDBクラスのPEAR_DBは、標準関数と比べて圧倒的に速度が遅い。代替のDBクラスもあるけど、これも乱立していて学習コストがかかる。 さらに言うと、PHP開発者のスキルは概して低い。 PHP開発者の確保は、Perl開発者、Java開発者の確保よ低コストだけど、PHPでOOPやフレームワークを扱える開発者をそろえるのは難しい。 こういったデメリットを乗り越えて、なおフレームワークにメリットがあるかどうかを考えないといけない。
PHPのスレで言うのもアレなんだがRubyのRails試してみるといい。 あとAppleのWebObjectsとか。Gauche(Scheme)なKahuaも ええよ。
ライブラリは自分の書いたコードがライブラリのコードを呼び出す フレームワークは自分の書いたコードがフレームワークのコードから呼ばれる 基礎の基礎。
312 :
302 :2005/10/02(日) 09:44:41 ID:???
>>303 分かりやすい説明ありがとうございます。
Webアプリ用のフレームワークについてはなんとなく分かったような気がします。
でも「Mac OS XのCocoaフレームワーク」なんていうのを
聞いたことありますが、あれはHTMLとは関係ないですよね。
そういう場合はどう考えればいいのか。
>>311 呼び出す方向による分類は新鮮です。いや、これに関しては無知でした。
デスクトップ・アプリで言うところのイベント駆動型かどうかという分類でしょうか。
ありがとうございます。
チーム開発のメリットだとしても、それフレームワーク使うより、 PECLで独自の拡張関数を増やすほうがよろしいんじゃないでしょうかね
扱っている案件において検討した結果 そういう結論に至ったのならそういうケースもある。 当然フレームワークを利用する方が良いケースもあるでしょう。
PECLで独自関数っていうとCで拡張モジュールを書くということ? それがチーム開発においてプラスになるのはかなり特殊なケースに思えるけど。 ていうかそんなの実際にあるんかいな。
あなたまかせの特定のフレームワークを使い倒すよりは、 独自拡張をあわせたほうがいい気はするけどな
$context =& $this->getContext(); $controller =& $context->getController(); $request =& $context->getRequest(); ------------ $controller =& $this->getContext()->getController(); $request =& $this->getContext()->getRequest(); あなたはDOTCH派?
そもそも PHP4 じゃ前者でしか書けない罠
どっちも意味不明派。
後者は&いらないんじゃないか? そんな自分は「= &$foo」派
>>318 PHP5では&はいらないわけだが。
むしろそのへんのことも含めMojavi系は面倒くさいので、そっとごみ箱にいれた派。
>>322 めんどくさいかなぁ??
フレームワーク使わずにどうWebアプリ構築してるのか知りたい。
べた書き?後から見辛くない?
別にPHP4だから、かならず参照渡ししないといけないわけじゃない。 対象のオブジェクトや配列の複雑さの程度だとか、後から値を変えたいかとかによる。
>>324 まあ確かにそうだけどさ、プロパティを変えないつもりでオブジェクト値渡ししといたら、後々になってからやっぱりプロパティを変える操作をした場合に辻褄あわなくなるじゃん。
PHP4だったら常に参照渡しにしたほうが楽な希ガス。
配列はよりけりだけど オブジェクトは一律参照渡しでほとんど問題なくない?
問題ないというか、PHP5や他の言語を考えると 必要な場面でのみ値渡しにしたほうがいいと思う
要はオブジェクトは特に理由がないなら参照渡しにしとけって話でFA。
ふりーえーじぇんと宣言?
っていうか参照渡しとか値渡しとか意味わからん漏れはダメ人間。
どうしてわかってくれないのっ!
ティン!
フレームワークとふかわがものすごいミスマッチだな
_____ /二二ヽ ||・ω・|| <ティン!!!!! |σ |σ > > 山崎邦正ならマッチするのに
335 :
nobodyさん :2005/10/05(水) 17:39:44 ID:gDrff9QN
requestとかcontrollerをAction中の複数のメソッドで使う時、 initializeでgetしておいてprivateなプロパティーとして持っておくのはアリ?
最近主流の複数画面で構成されてるサイトって フレームワーク(的なもの)がなければ作れないよなぁ。 ベタ書きで作ってるサイトなんてあるんだろうか?
>>337 ヘッダ-メイン-右サブ-左サブくらいにエリアが分かれてて
それぞれのエリアのコンテンツ構成が動的に変化するようなの。
ポータルとかニュースサイトのほとんどがこれ系だよね。
別にフレームワークが必須だとは思わないけど。 フレームワークが一番効果を発揮するのは、何画面にも渡るアンケートフォームだろうね。 アンケートデータの持ち回りと、ヴァリデーションに応じて遷移先の画面が変わるから。
>>338 別にベタ書きでも書けるけど、フレームワーク使ったほうが早いときもあるってだけの話だ罠。
>>335 Mojavi系の話だよね?毎回contextから取得するのがMojavi標準的くさいからナシ。
ローカル変数にrequestとか入れるくらいまではアリだと思うが。
例えばヘタに$this->request = "うんこ";とかやると他のメソッドに響くし。
その点では、PHPにfinalがあればMojaviの仕様も大分違ってたのではないかと想像。
少なくとも$this->context->getRequest()か$this->context->requestくらいにはなるんじゃないかな。
$this->requestまでなるかどうかは、何とも言えないがw
>標準的くさいからナシ。 久しぶりにその方言聞いた。なつかしいなー。
仕事でMojavi使ってた人は今どうしてるんだろう Agaviに流れたのか他に行ったのか
>>339 データの持ち回りなんてセッションで十分だと思うのだが・・・・
いまだに俺はフレームワークの利点が分からない。
>>342 名前似てるけど、俺は和製フレームワークはpokが一押し。
>>343 多分仕事で使ってた人は、少なからず手を加えてるので、
わざわざAgaviには流れてないんじゃないのかな?
>>344 自分一人で作ってたりする人はそうかもね。
「俺的フレームワーク」ってのを知らんうちに使ってたり。
まさか毎回1からなんて事はないでしょ?
348 :
345 :2005/10/06(木) 21:31:38 ID:???
>>346 ttp://cgi39.plala.or.jp/klove/ S2Container.PHP5の人ね。
Seasarに関わってる人達を個人的にスゲー注目してる。
パフォーマンス的には??って感じは否めないけど、
PHPでも結構やれるなって事がわかって良かった。
スゲー勉強になった。
S2Daoとかスンゲー期待してる。
俺の中では糞盛り上がってるんだけど、
MLとかスンゲー寂しいし、ひょっとしてめちゃくちゃ
マイナーなのかなぁ・・・と心配になってきてる・・・。
>>348 ありがとー
Seasar.PHP の ML は読んでるから名前は見ていた人だわ
S2Dao とかおれも期待しているんだけど
正直,きちんと追ってない人には活動が何してんのか見えなさすぎて,
それがマイナーっぽい原因になってるんだろうなーと思う
フレームワークのウリとしてフォームの取り回しの簡便化がよく喧伝されるけど 俺はそこはあんまり重要じゃないなぁ。 そんなにしょっちゅう書く部分じゃないし、もともと単純な処理がほとんどだし。 デザインパターンに基づいた保守性の高さや、 見通しの良さの方が嬉しい。 簡単なことが簡単になっても、あんまり嬉しくないけど 複雑なものを単純にすることが出来たら、かなり嬉しい。
privateやprotectedもないPHPでデザパタ重視はどうかと思う
>>351 釣りなのか、PHP5 を知らないのか、どっち?
353 :
351 :2005/10/07(金) 05:23:35 ID:???
フレームワークを使っているから、オブジェクト指向かというと、そういうわけでもないよな。 メンテナンス性を上げようと思えば、在り物のフレームワークを使うより、 自分なりにそのWEBアプリにあった仕組みを考えた方がメンテナンス性が上がる場合もあるだろうし、 メンテ担当の技量を考えて、クラスをいっさい使わないようにした方がメンテしやすい場合もあるだろう。
forwardすることを前提としたactionでも、 url直接入力して直呼びすることもできるよね。 何か対策してる?
してる
いくつか方法は考えられそうだけど どんな?
requestにsetAttributeして飛び先actionで確認
なるほど thanks
結局そういうことにrequestのattributeだとかuserのparameterを使うと、(コントローラの呼び出し等を除いて)実行されるコードの最初から最後までアクセス可能ってことになる。 そうなるとグローバル変数と変わらないんだよな。 もっと各状態の遷移ごとにアクセス制限のかかったデータの受け渡しができればいいんだけど、うまくいかないもんだ。
セッション管理ではだめなのか?
>>354 おいおい、そんな事させるからPHP使いはウンコのまんまなんだよ。
クラスを一切使ってねぇ〜システムなんざ見る気しねぇ〜よ。
つーかクラス使わずどうWebアプリ作ったらいいんだろ?すら思う。
351の言ってる保守性は、アプリ自体の保守性 354が言ってるのはアプリ上に乗っかってくるデータやコマンドのメンテナンス性 で、フォーカスしてる層が違う感じがするな
PHP4にはデストラクタないし、例外も投げれないから、クラスをネストさせたり、複雑に組み合わせたりはやりづらいよね。 スコープを明示できないからクラスを使わざるをえないけど、それじゃあクラスをクラスらしく使ったプログラミングとは言えない。 もっとも、WEBアプリというジャンル自体、オブジェクト指向のメリットがあまりないジャンルだと思うね。 どっちみちリクエストのたびにオブジェクト作り直しになるわけで、ユーザからの入力データもリクエストごとにフラットにしかこないわけで。使いどころがない。
> もっとも、WEBアプリというジャンル自体、オブジェクト指向のメリットがあまりないジャンルだと思うね。 ふーん。
366 :
362 :2005/10/07(金) 18:41:02 ID:???
>>364 それは俺に対する回答だと思っていい?
クラス使ってる=オブジェクト指向っていうのが間違ってると思うよ。
実際自分を顧みるに、オブジェクト指向を意識してクラスを使い始めたが、
オブジェクト指向にはならず、単に構造化になっただけだった。
だがそれだけでもかなり見通しが良くなったと思ったよ。
単にメンテ性だけを考えてもクラスを使用しているアプリと、
クラスを全く使用してないアプリとどっちがメンテし易いか?
って考えるとどっちだと思う?
俺はベタ書きで書かれたものを渡されて「メンテしろ」って言われたら、
とりあえず「作り直させてください」って言うな。
あと、クラスのネストってどういう事?
DecoratorTemplate使う時で、 HTMLのヘッダ部での 外部JavaScriptファイルの読み込みとか JavaScriptの初期値設定が必要な場合、どうしてる? 自分が「部分」になれるDecoratorは便利だけど 入れこみたい情報がソース中でバラける時、面倒くさいなぁ。
別にクラスを使えばオブジェクト指向になるとは思わないよ。 それとフレームワークとオブジェクト指向とは関連性があるわけじゃないとも思う。 まあ、フレームワークにもよるけど。 これは言うまでもないと思うけど、オブジェクト指向を生かせるのはGUIのデスクトップアプリケーションとか。 WEBアプリの場合、リクエストの度にオブジェクトを作り直さないといけない。 特にPHPは永続化をどうするか?とか、言語機能が少ないとか、速度が落ちるとかっていう欠点もある。 まあ、これからはAjaxとかFlashとかで、高度なGUIを持ったWEBアプリが要求されるだろうから、そうなるとオブジェクト指向のメリットも出てくるかな。 けど、HTML自体があまりオブジェクト指向なプレゼン言語とは思えないんだよなあ。
>>368 フレームワークとオブジェクト指向とは関連性があるわけじゃないとも思う
って関連ありまくりじゃん。
OOのエッセンスが分かちがたい程たっぷり入ってると思うよ。
OOを使わずともライブラリ集は作れるだろうが、
フレームワークは作りにくいだろう。
>>368 今時「PHPでOOPすると性能が落ちる」とか言ってるのは時代錯誤もいいとこ。
371 :
367 :2005/10/08(土) 01:39:24 ID:???
ViewHelperで解決した(゜д゜)
デストラクタもないのにオブジェクト指向ってありえるんだろうか?
なんだこの掃き溜めは
デストラクタがないとオブジェクト指向なプログラミングができない、 という思考回路が判らない。言語仕様に捉われすぎてる悪寒。
ありだと思うな。 Cでもオブジェクト指向でまとめられたライブラリやツールキットは山ほどあるし。 オブジェクト指向プログラミング自体はべつに大抵の言語で可能だとおもう。 たしかにPHPはオブジェクト指向言語として設計されたわけじゃないが、 これとPHPでオブジェクト指向プログラミングをする事は矛盾しないだろう。
てか5にはデストラクタもあるよ。 でもウェブアプリでデストラクタを使う機会はあんまりないだろ。
>>370 時代錯誤というより、単に知識が乏しいだけだと思う。
このスレでPHPによるオブジェクト指向プログラミングを否定している 連中は、オブジェクト指向じゃなくてC++ or Java指向になってるんじゃないか? rubyもデストラクタは持ってないしな(GCがあるからだけど)。
確かにウェブアプリじゃデストラクタなくても、なんとかなる。どうせ1回こっきりでプロセスごと終了するんだから。 そうすると、こったオブジェクト作ってもしょうがないじゃん。シングルトンとか、ウェブアプリでどれくらい意味あるのか。
>>380 SingletonはDB接続に関するクラスで使ってるな俺は。
スゲー便利だしすっきりするなぁって思ったね。
要は使い方によるかなと。
ほっといてやれよ。
>>381 1回のアクセスでオブジェクトが全部ご破算になるWebアプリでシングルトンの意味はある?
$_db_ = new MyDB();
function getDB() {
global $_db_;
return $_db_;
}
:
:
//実際使う場所
$db = getDB();
これでいいんじゃない?
>>383 グローバルオブジェクトを利用したSingletonの実装の一形態だろそれ
いいんじゃない? と言われりゃそうですねと言うしかないな
Java厨って実装から何から全部Javaと一緒じゃないと否定したがるのがうざいな
>>383 意味が無いと思ったら使わなければいいだけの話じゃん
PHP5にはデストラクタあるだろ。
あるって何回も書かれてるってw
383のやり方だとグローバル空間が汚れるじゃん。 _を使うのはやっぱり苦肉の策だし、クラシックな作法だろう。
おれはsingltonならstaticで書きます。
DB_DataObjectなんかは
>>383 みたいな感じだね
Java厨というよりJavaを意識しすぎたPHPユーザー、みたいな印象を受ける
Javaを意識するあまり、「PHPじゃないと出来ないことをしないといけない」みたいな傾向ってあったと思う
最近はその対象がRubyに移ってきたみたいだけど
俺はDB接続部分をSingletonにして、各テーブルに発行するSQL文などを集めたクラス がgetInstanceするって感じに使ってるけど、おかしいのかな? 各テーブルというと語弊があるかな。ある程度のテーブルを纏めたクラス。 JOINする場合(というかJOINしない場合が珍しいけど)は基となるテーブルのクラスに入れる。 $a = Atables(); $b = Btables(); print_r($a->getSelect()); print_r($b->getSelect()); って感じで。 全然スマートじゃないなぁとは思うけど、 DB周りはどうやったらスマートになるのか 全然わからん。解説サイトではロジック部(?)とSQL発行部 が混じっているが、個人的にそれはすごい抵抗があるし。 誰かご教授下さい・・・。 あ、今月のPHPプログラマーズマガジン無料だって! JPSPAN扱ってるね。あれ@ITかなんかで廣川さんが 解説してて、それ以来使ってるけど、あれ使ってる人って 聞いたことないから不安になってた。 スレ違い&長文すまん。
OOにデストラクタを重視する奴は意味が分からないな 前時代の遺物的存在じゃん 後片付けは言語側で勝手にやってくれる方が今風だし、キレイだ
C++でOOP入りした人は感覚的に染み付いていて、抵抗あるんじゃないかな。 オレも昔はそうだった。ruby, PHP, C#で、すっかり骨抜き?にされたけど。 なんつーか最初の頃は堕落した感じがしたもんだ。 (良い悪いとかじゃんくて、楽チン→堕落、みたいな妙な感覚)
お、お前ら・・・お前ら何言ってんだ?? お前らの会話の内容がサッパリ分からんぞ、DQNな漏れは。 もうね、難しいとか難しくないとかいうレベルじゃない。 何の予備知識もないスワヒリ語を聞いてる感じ。
>>394 それはDQNだからじゃなくて単にオブジェクト指向開発用語を知らないだけだと思う
つまりそれを勉強すればこの会話の意味はすっかり解るだろうし
勉強して損ないものなのでぜひ習得してみるべし
>>392 勝手に行うのはメモリ開放だけだろ。
さらにPHPはfinally構文がない。
finally構文ってオーバーライドを禁止するfinalのことか? finalならPHP5にあるが。
>>398 例外処理のfinallyでしょ。
Javaなら以下のように書けるけど、PHPではfinallyが書けないので
リソースの破棄を行いたい場合などに二度手間になることがある。
try {
例外の起こりそうな処理
} catch (Exception e) {
例外発生時の処理
} finally {
例外が起きても起きなくても実行したい処理
}
400 :
383 :2005/10/08(土) 22:26:28 ID:???
>>390 > Java厨というよりJavaを意識しすぎたPHPユーザー、みたいな印象を受ける
JavaはHelloWorldくらいしか書いたことないな。
俺のよくいじる言語はSmalltalk, Ruby, PHP, JavaScriptだよ。
あとSchemeも好きだな。
わざわざclass定義してstatic変数用意して2つもメソッド書いて、
結局
>>383 のたった6行でできることをかえって複雑にするのはアホらしい
ってことだ。
まあ、「Singletonって書きたいだけちゃうんか」というコードが多い という気はする。
>>309 >>他にもデメリットとして、smartyのようなテンプレートエンジンを使うと実行速度がぐっと下がるし、
これはウソでしょ。
Singletonパターンってイディオムみたいな感じだよね。 確かに無理して本に乗ってる書き方通りにしなくても良いとは思う。 Javaみたいにマルチスレッド環境になることもないし。
383の書き方だと、呼び出し側のコードを見ただけでは それがSingletonなのかどうかは判別できないじゃん。 確かに伝統的な書き方は記述が面倒だけど、 一人の思考ではなかなか太刀打ちできない強度があるもんだよ。 たくさんの頭脳を経た思考の蓄積や時間による淘汰は馬鹿に出来ない。
>>400 わざわざ冗長に見える記述をするのはそれなりの理由があるからで、
それが感じられないならオブジェクト指向自体が冗長だろう
ていうかSmalltalkとかRubyのほうがよりオブジェクト指向が強いと思うのだが
冗長って何?
>>406 君は初心者向けの本とかをたくさん読んできなさい
フレームワークスレはまだ早い
>>400 class aClass {
function &singlton(){
static $me;
if(!is_object($me)) $me =& new aClass;
return $me;
}
}
$instance =& aClass::singlton();
これがそんなに複雑かな?
わざわざgetDB()とか$_db_とかというのをグローバルな名前空間に
つくる方が複雑化を招く気がする。
実際に作る時はこのままではなんとなく気持ち悪くてスタティックな
コールであることを保証したりしちゃうから、そういうときはたしかにphp4で
ちょっと損した気分になるね。
PHPでのシングルトンには、「リソースを効率よく使うため」ではなくて 「意図を表すコーディング」としての効果を期待しろ、ということで。
>>400 なんか実用的なプログラム書いた事無くて、頭の中で屁理屈こねくり回してるって印象を受けるな〜
PHPに限らずアクセスレベルなんかも、 実際に使っちゃうリスクへのヘッジというよりも 意図を埋め込む意味合いの方が強いよね。
意図なんてコメントとして書いておけばよい。
>400 そもそもシングルトンで重要なのは、コンストラクタを private とかにして、 オブジェクトの生成が出来る箇所を限定することの方だろ。
↓これはシングルトン? /** * シングルトンとして使ってください(オブジェクトは1度だけしか生成しないでください)。 */ class Example { : }
プログラムは改変されていくものだから、 コメントがいつの間にか嘘の説明にならないよう、 むしろ少なめ推奨がモダンな作法。 独善的持論をぶってる奴はもう少し勉強しれ。
DB鯖がセッション用と顧客データ用と別だったりとかさー DBオブジェクト複数接続先で使いたい時とかって割と無い?
↑解かりづらいか、「DBオブジェクトを接続先別に複数生成したい時」と言い換え
俺はSingletonなDBオブジェクトにコネクションコンテナを持たせてる
ハイハイそうだね
あー、415のせいで荒れ始めただろ……責任とって下さい、415
何で糞ガキがこんなスレに迷い込んできたんだ…。
423 :
nobodyさん :2005/10/09(日) 18:52:26 ID:j3jR0Qvz
ままー おなかすいたー
>>415 >プログラムは改変されていくものだから、
まあ、その通り。
>コメントがいつの間にか嘘の説明にならないよう、
確かに気をつけないと。
>むしろ少なめ推奨がモダンな作法。
いきなり妄想が入ってきました。
>独善的持論をぶってる奴はもう少し勉強しれ。
独善的持論乙
>>424 だから勉強してから書けって言ってるだろ?
お前の浅薄な意見なんて何の参考にもならねーんだよ。
426 :
nobodyさん :2005/10/09(日) 19:38:21 ID:QrQMlw6M
ソースのコメントを少なめ推奨している、モダンな作法とやらのポインタくれ。
お子ちゃまたちは XP(エクストリーム・プログラミング)についてなど 調べてみようね。 最近よく出版されてる軽めのプログラミング読本も 結構参考になるよ。
底が知れたなw 一瞬俺の知らない技術体系が発生してるのかとおもた
XPってコメント少なめ推奨してるのか?
コメントなきゃ判らんコードはリファクタリング候補ってこと 量が少ないほうがいいとかモダンとか言うのはオカルトつーか誤認
>>430 同じことを簡単に言ってるだけだろ。
まあケチつけたいだけの奴は
Singletonをコメントで実現しとけばいいんじゃねーの?
全く違うよ。XPのレトリックが読めてない典型ワナビー君じゃん。 コードとの差異が出ないようにコメントを最小化する、なんてのは アジャイルでもなんでもないし、リファクタリングしないことが前提の 固定的な開発思想でしょ。
よしフレームワークにおけるアノテーションやAOPの意義について考えようぜw
>>432 あー、お前の言うことにも一理あるね。
というか、お前が俺の言葉をどのように捉えたのかは理解したよ。
言葉のツラだけ捉えればまさにオカルトという言葉が相応しいかもしれない。
世の中には言葉をそういう風に使って金儲けや愚かな事をする輩が溢れているから
ダイレクトにそう捉えられたのも無理はないと思う。
だけど俺が言いたいのはそういうことじゃないんだよ。
なんか議論がつまらない方向に発展していきそうなのでこのへんで切り上げますが。
>>435 上の流れがあるから指摘の意義は判ってる奴は普通に判ってるだろ
幼稚な煽りで見れたものじゃないがな
>>434 PHPでリフレクションを利用したコメントアノテーションはちょっと興味ある
言語仕様になくても無理矢理実現できるのがPHPらしいというかなんと言うか
まあ今のとこお守りみたいなもんでコメントと大差ないけどね
>>434 XPはコメントとかコード外のメタデータや宣言を否定するわけじゃないっつの
それがリファクタを困難にするとも言ってない
読めるコードを書けっていう当たり前のことが言いたいだけなんです
みんな理屈はいいから結論を書いてくれよ
>>414 はアリ?ナシ?
お子ちゃまは寝る時間ですよ
オフィシャルではアノテーション導入する気はないみたいだなあ。 やっぱりコンパイラが対応してくれないと…フレームワークレベルでは実効力に欠ける。 Maple以外でDI+AOPなフレームワークってないのかな?
フレームワークのメンテナが提供してるサンプルは どれもこれもシンプル過ぎていまいち参考にならないなぁ もっと踏み込んだサンプルをチボンヌ
議論を読んでない俺が思うのは、開発手法の議論は他のスレでやってくれということだ。 つーかガチガチのクラス使いたいならJavaでやれ。 PHPでやらなきゃならん制約があるなら新スレでも立てるろや。
俺が思うのは フレームワークの開発がどれも停滞し過ぎということだ。
YAMLってJSONみたいな物?
>>442 上にも出てたけどpok。
実務レベルでどうか知らんけど、勉強用にはとても良かった。
>>446 最近はMapleが活発になってきたんじゃないかな?
MapleってM3のDecoratorみたいな CompositeViewを実現する機構がなくない? そこが俺的には痛いッス
>>450 どっちも汎用の構造化データ記法でしょ?
同じような物じゃないの?
>>451 JSON と XML が同じようなものである程度には,
JSON と YAML は同じようなものだとは思うが,
一般的には「違うもの」として捉えられていると思う.
てゆーかJSONって形式としちゃ汎用とはいえ
例えばPHP→Javaのデータ転送にJSON形式使う奴なんていないんじゃないかと……
構造をあらわすっていう超大雑把な括りに何か意味あんの?
>>453 意味っていうかプロトコルの一種だろ
やりとりのための約束ごととして決めておく。
絶対的な必然性はなかなかありえないから
「どっちでもいい」に落ち着きそうな気はする。
強いて言えば 人間に読みやすく設計されてるのがYAML JavaScriptに読みやすく設計されてるのがJSON 誰もが読みにくい代わりに高機能なのがXML って感じかねぇ?
確かにYAMLは人が見やすいなぁ 中庸っぽさがPHPと似てるかも JSONも嫌いじゃないけど
JSONは専らJavaScriptと連携するときに使う印象。 ところでMapleはPHP5には対応しないのかな? Mapleの目指す方向からしてPHP5で書いた方がずっと楽&適してるように思うんだけど。
前から4で続けると明言してる やったことないけど、5じゃ動かんの?
っていうかつまらん議論してるならコンピュータなんて捨てちまえ!!! 別に無くてもあまり生活に困らないぞ。
>>460 この議論がつまらんと思うなら460にはそれが良かったんだろうな
幸せな人生を歩んでくれ
Mapleって4なんだ。 プレゼンテーション層をActionだけにしたところは共感してるんだけど 機能的にはまだMojavi系の方が厚いっぽい。
DIってのは簡単に言うと 器だけおいておくとフレームワークが勝手にオブジェクトを 放り込んでくれるウンコホウリナゲ!( ゚∀゚)つ=====o みたいなことを言ってるのかな?
464 :
nobodyさん :2005/10/10(月) 19:38:53 ID:+MnfvWOk
ウンコホウリナゲ!( ゚∀゚)つ=====oられるために Mapleは設定ファイルを用意、 guessworkはプロパティーを用意すると。 Actionだけを見てざっと把握できるから その点ではguessworkがいいかな…。
勉強してる余裕ないから、いまだにguessworkしか使えない。(´・ω・`)ショボーン
Mojaviで 属性をメソッドから返す作法が面倒くせーと思ってたけど(プロパティー用意で良くね?と) 内部条件によって属性を変えられるメリットがあるんだな。 Mojaviは知るほどに、「よく考えられているなー」という部分がある。
468 :
nobodyさん :2005/10/11(火) 19:47:53 ID:G45STU1Q
>>467 Mojaviだからではなくて、ただの情報隠蔽だろ。
mojavi4って一応作ってるんだな ソース見る限りでは、完成には程遠いけど
>>468 それもあるだろうね。
ただそれだけじゃなく、コードを書くことを前提としてると思うよ。
>>470 ??
属性をセッターゲッターで操るのはMojavi独自の実装ではなくて定石だろ?
だな。俺もコードを書く時に「ゲッターロボ GO-!!」とか[セッターロボ GO-!!」とか言いながらやってるよ。
単なるセッターゲッターじゃなくて Actionにとっての設定的な項目を メソッドの形で実装して返すのがMojavi流じゃん。 しかもプロパティーに対するアクセサじゃないから セッターゲッターじゃないし。 設定ファイルで済むようなことを なんでメソッド書きまでしなきゃいけないのかと疑問だったのだが、 確かに利はあるな、と思ったということ。
利→理だね
>>473 セッターゲッターの存在意義わかってる?
>>475 いや当然普通に分かってるけど…。
なんかいまいち伝わらないみたいだな。
>>476 RubyとかRailsの人のよく言う言語重要てやつのことかね。
設定ファイルなどに頼るな、言語で一回だけ書きゃいいのだ。というあの信条。
うちではJava系のひとのStrutsアレルギーでMojaviは使っていないのだけれど。
>>181 遅レスだが
firefoxならOSXでも使えるんだね
昔はMacなんて置いてけぼりだったのに便利な時代になったなぁ
オブジェクト指向的にSQLを組み立てられるソリューションをどなたか知りませんか? 分散DBにしたいので、DBアクセス部分はこっちで書こうと思っています。 SQLのみを書いて欲しいのですが、それに機能を限定したものが なかなか見つかりません。
PHPで最適なフレームワークはなに?
一長一短で、定番はないよ。
長所短所を比較しているところってないですか?
? 分からないのはむしろ君の頭の中だが…。 そもそもがセッターゲッターの話じゃないわけで。 Mojaviを実際に使ったことあるかい?
この板の人達はスルーすることを知らない
技術者だから基本まじめなんだよ。 だいたいフレームワークスレで煽る意味が分からない…。
>>487 煽る→怒った奴の中に自称女が現れる→女と証明してみろブサイコと煽る
→怒った女は、オッパイやパンツ写真をUP→みんな素人エロ画像にマッタリ
>>488 うむ、とても平和な流れだ。
その流れを、このスレに当てはめるとどうなるんだろう。
ここPHPのフレームワークスレだよね。。。 いま作ってるんだけど、需要あるのかなぁ。
>>490 既存のフレームワークより優れた点があるのなら
既存フレームワークも大分広まってるから あまりにも独自だと、 学習コストが比較的高くなって普及しないかもね。 かなり戦略的でないとこれから普及されるのは難しいと思う。
>>492 今ある奴で開発がとまり気味のものとか、今あるものをベースに
進化させてくれるひとがいたら結構いいと思うけどな
またforkふえるのか! agaviかmojavi4に統一しようよもう。
495 :
490 :2005/10/19(水) 19:41:56 ID:???
どうも490です。 今作成してるのはHTMLテンプレートをベースにF/W的なことをやろうって 感じで実装しています。 機能としてはテンプレート>PHPの置き換えのオーバーヘッドを少なくするために 中間コードをキャッシュさせる機構や、携帯電話の絵文字変換(キャリア相互変換)、 標準で使えるDBラッパー(MySQL.PostgreSQL,Oracle,SQLite)等です。 基本的には汎用クラスで動くように作ってあります。 といっても画面に出力するためにコントローラが必要ですが。 プログラム自体の実装は1クラス1モジュール扱いで、テンプレートから呼び出す メソッドがコントロールメソッドでその中で他のメソッドを呼び出すのが モデルメソッドみたいな感じです。んで、HTMLテンプレートがViewです。 たぶんMVC的構造になっています。 クラス実装する前のスケルトン自動生成機能なんかもつけようかと 思ってます。 テンプレート中のタグ類は専用タグを使い 条件設定(ifに相当するorやandも可とその逆の動作)タグや、 プログラムに渡すオプション値タグ、繰り返し(ループ)タグ、 絵文字変換タグなんかを組み合わせてViewを書くといった感じです。
>>495 DBラッパーはPDO以上なん?
HTMLテンプレートはSmarty以上なん?
今からだとDB抽象クラスはPDOで十分だと思うけど テンプレートは Smarty 以上である必要なんてないじゃん。 (そもそも何をもって「Smarty以上」とするのか) Smarty は高機能で普及もしてるけど個人的には良いとは思わないし。 テンプレートエンジンとフレームワークが密に連携するってのも面白いと思うよ。 携帯絵文字は Vodafone のエスケープシーケンス使う奴がウザいね。 DoCoMo や EZweb の絵文字は比較的扱いやすいんだけど。
絵文字変換なんていいんじゃない? そういうアプローチのフレームワークはまだないし
>>498 絵文字変換だけならフィルターとか掛けてやるだけじゃん
>>499 絵文字はSJISでテンプレートとかDBはEUCJP推奨だから、特にsmarty使うとき色々面倒
iMode/EZwebの絵文字はSJISの私用領域を使ってて、PHPならSJIS-win/eucJP-win/UTF-8 で相互変換可能。 端末が表示できるのはSJIS(-win)だけだけど、ちゃんと変換してやれば途中の処理を eucJP-win/UTF-8 でやっても大丈夫。 あと最近はUTF-8でも(EUCは知らない)携帯キャリアのゲートウェイがSJISに直してくれるっぽい。 とりあえず基本的な絵文字が見られればいいってことなら、EZweb/Vodafoneの絵文字を iModeの絵文字に変換しておくのがいちばん簡単かな? iMode絵文字なら他のキャリアでもゲートウェイが端末に応じた絵文字に変換してくれるし。
>>500 smartyを使いこなせていない予感。
503 :
500 :2005/10/20(木) 03:16:14 ID:???
>>502 むしろ使うためにsmartyをハックした
絵文字変換なんかまさにフィルターの仕事。
ドコモの絵文字をDBに入れるときどうすればいいの? EUCに変換したら消えちゃうよね? DBをSJISにするの?
>>506 絵文字を入れたいタプルをBLOB型に設定してBINARYフラグを有効にする
>>508 そんなことしてオーバーヘッド大丈夫なの?
少量ならそりゃ大丈夫だろうけど、全文検査とかどうよ?
postgresqlのsjisパッチあてるとかは?
CakePHPのソースを漫然と眺めていたんだけど、その語尾の特殊変化の設定ファイルに penisとtestisがあったよ。これで下品なソースでも安心だね。アダルトサイトにも最適。 でもこれいいわ。なんて言うか、流れに身を任せればとても楽。コンパクトだから見通しもいい。 それにやっぱり死にかけのプロジェクトよりも生きのいい方がいいしね。
>>511 >語尾の特殊変化の設定ファイル
なにそれ
>>510 ?xA0; みたいなやつ?
他キャリアのつもみんなドコモのやつに置き換えるの?
てか、フレームワークすれでこんなこと聞いてすまん。
cake
>>512 cakeはRails系なので、規約は設定に勝るっていう哲学で作られてる。
たとえば、Userというモデルが対応するテーブルはUsers決め打ちになる。
だから、特殊な場合の変化形を自前でもっとく必要がある。
もちろん、大抵の規約は上書きすることができるけど、それだとcakeの意味がないしね。
>>507 JavaのJakartaプロジェクトみたいなものかな。
今後の標準になるようなものを作って欲しいなぁ。
>>516 Zend自身が乗り出してるから標準を目指してるんだろうね
これをふまえて今の草の根フレームワークはどう動くんだろ?
Mojavi4は完成するのか…
>>517 Zendはどうせ金になるエンタープライズ領域しか目に入っていないだろうから
既存のフレームワークとは競合しないような予感。
あとは、ZendStudio必須とか、余計なことしちゃいそう。
>>518 たしかに余計なことしちゃいそう
よく考えるとZend提供のPHP関連サービスに
いい評判はあまりないもんなぁ。
定番を望むのもわかるけど、 何でもできる=どれも中途半端な性能 てことが往々にしてあるので、すきなの見つけて自分で 進化させていくのがいいかも。 できればsourceforgeとかつかってw
Zend PHP Framework あれどうなってんの?
SmartyってZend発?
違うと思う
まぁZendの事だから、期待出来ないな。 今までノータッチだったけど、Ethnaって良さそうだなぁと思い、 本家のML見て見てみたら、ら○じぃがいるじゃねぇかよ。 あいつ嫌いなんだよな・・・。 坊主憎けりゃ・・・じゃないけど、なんかEthnaやだなぁ・・・。 藤本神は好きなんだけどなぁ・・・。
そんなこと言うもんじゃありません
ZendのFrameworkはお布施用にきまってるだろ
いやフレームワークでは金は取らないじゃないか?
Zend Framework Lite 無料 Zend Framework Enterprise 有料
DB周りのコンポーネントとか有料かもな
Zend Studioお布施済みの俺としては、Studio対応で無問題。
534 :
nobodyさん :2005/10/28(金) 21:50:40 ID:geHxPjMK
Mojaviで モバイル/PCの分岐はどこでどんなふうにやってる?
>>534 やったことないけど、フィルタでforward分けしたらいいんじゃない?
>>534 なにを目的として分岐をするかによる。
機能を分けたいならActionを分けるだろうし、
表示を分けたいだけならViewだろう。
Mojaviのフィルタって好きなだけ作れるけど プリフィルタしか使わない場合とかポストフィルタしか 使わない場合とかってある?
それはよくあるでしょ。
php5のひとはどのフレームワークつかってんの agaviとか?
542 :
nobodyさん :2005/11/01(火) 23:23:56 ID:D/XKY8a/
Mojavi3を使っているんだけど、 複数のActionから共通のViewを呼び出すにはどうするのが綺麗なやりかただろう?
>>542 Actionでarrayかえせばええやん
MojaviはActionとViewが イチイチで対応してるからどうやってもトリッキーになりそうだな。 俺はViewを分けるほどのことないだろと思ってオリフレ作ったけど。 ViewHelperの仕込みとか結構ごちゃつくから分けてもよかったかもと 思ったりもする。
>>543 ActionでArrayをかえすってどういう具体的にどうすること?
>>546 Mojavi3ではActionの戻り値として、
第一要素がモジュール名第二要素がビュー名の配列をかえすことによって、
遷移先を指定できる。
テンプレートエンジンをSmarty-lightにしてる人いる? Smartyとほとんど変わらず使えて、しかも軽くなるなら、 結構お得だと思うけどどうなんだろう。
おいagavi使ってるやついるか
>>553 それだけ見ると Rails と変わらないよね
簡単すぎて不安になるな 鯖一つで収まるようなシンプルなアプリにはかなり最強かも…
つーか、rubyの勢いはマジですごい。
海外の連中はそのうち業を煮やして、Rails 用の Ruby を fork させそうな勢いだよな。
ワロスww
EthnaでPEAR::DBじゃなくてADODBって使えるのかな?
>>560 お、サンクス。
ちょうどその辺りの話題のレスがあるね。
562 :
nobodyさん :2005/11/06(日) 01:02:45 ID:1KuwxXQW
S2PHP使ってる方いますか? どんな感じでしょう。
>>562 流石に仕事に使ってる人はいないだろうね。
触った感じは面白いよ。上の方に出てたpokフレとして。
まぁ当然まだまだなんだけど、将来はかなり楽しみ。
Mojaviの index.php/param/value/param/value 形式のURIってmod_rewriteとの併用前提なんだね。 間にindex.phpがまるだしでダセーURLになるなーとオモッテタ…
>>564 mod_rewrite使わなくても、index.phpに相当するファイルをForceTypeしちゃえばいいと思うよ。
>>564 別に mod_rewrite 前提ってわけじゃないっしょ。
568 :
564 :2005/11/07(月) 05:38:11 ID:???
path_info形式にすると ブラウザがドキュメントURLを誤認識するのが面倒くさいね リンク全部絶対URLにしなきゃならんのか。
PHPプログラマーズマガジンで Seagull ってのが紹介されてるね。 立ち読みしか読んでないけど。 これ、フレームワーク? CMS?
>>570 さんくす。
よくよく考えたら、mod_rewriteでindex.phpを無条件にはさむと、
他のファイルへのアクセスに支障が出るから、
そういう方法しかないかもしれない。
>>573 ぱっと見Mojavi系と似てるね
デフォルト拡張子がincなのはセキュリティー上
推奨できないと思う
フレームワーク大杉
Synfony勢いとかサイトのクオリティーで抜きん出てる気がする これからはこれか?
Symfonyのムービー見たらテンプレートにphp生書きで、 しかもテンプレート中から$user->getAttribute()とか平気でしてる。 最近Smartyみたいなテンプレートエンジンの 意義みたいなものに疑問を感じてきた俺には示唆的だった。 実際テンプレートエンジンから 独自文法の解釈外したら馬鹿みたいに短いコードで書けるんだよね。 もともとPHPはob_系関数があってキャッシュの実装なんかも やろうと思えばすぐ出来る環境だし。
デザイナーにはHTMLを触らせず、cssだけいじらせる時代になってしまえ
579 :
sage :2005/11/13(日) 08:33:59 ID:nNKS4KNy
>>578 当方デザイナ(つーかコーダかな)ですが、それ大いに賛成です。
開発者からページに掲載するデータの定義だけ教わって
あとはxhtml&cssと格闘するみたいな。
もしくはxhtmlの出力フォーマットだけもらってもいいや。
tableタグ使ったレイアウトに決別すると、
どうしてもそういう方向になってくる気がします。
もう一歩進んでhtml作るときにtdiary互換のcssを参照するようになったりしたら、 webデザイナーの仕事が減っちゃうかもしれないよ? でも、むしろその方が本来のグラフィックデザインの実力で勝負できていいのかな。
おまいの作るhtmlは、えらく目的が限定されとるな。
php5なんだけど、何がおすすめ?
ドキュメントとかしっかりしてるみたいだけど, 商用ライセンスってのが・・・
>>583 ■クラスタリング
高負荷サイトの為のWebサーバ、DBサーバの並列化に対応しています。
これが気になるなー
ちょっと見てみようかな
>580 tdiary互換のcssって...なんでtdiaryなの?
tDiaryのテーマを変えて喜んでるだけの厨房だから
mojavi2ってsession_destroyは手動でやるしかない?
Symfony見たらActionにショートカット用メソッド (getRequestParameterとか)付けてたから俺もそうした。 何か綺麗さが損なわれるような気がしてヤセ我慢してたけど。
mojaviを勉強しはじめました。 参考になるソースを見ようかなと思うのですが、お勧めのオープンソースなものって ありませんか? できればmojavi2系 できれば、smartyとかadodbとか使ってたり 携帯の処理なんて書いてあるとさらに素敵です。
cakePHPってデータベース絡みには結構よさげだけど認証や権限関連が弱いな
mojaviでFPDF使っている人いる? なんかIEで表示されないんだけど、原因は何?
>>592 あぁ、それIEのバグ
対処法はいくつかあるけど
mojaviの外に出たら、うまくいった。
view_noneじゃなくてexitすると動くことがある
>>591 Controller の beforeFilter と PEAR::Auth を組み合わせればカンタン。
aclがいらないなら5行もあればできる。
でも、組込み認証の是非に関する議論は一応やってたと思う。
個人的にはこれ以上Controllerは太らないで欲しいんだけど...
>>597 早とちりかな?
認証はともかくとして、権限をどうやってPEAR::AUTHで簡単に?
五行のコード載せてみて
> aclがいらないなら acl = 権限ジャマイカ?
>>598 権限 = acl のつもりだったんだけど、どうしてもAclが欲しいなら今でもMyAclを使える。
うろ覚えで書くとたとえばこんな感じのメソッドをAppControllerにでも追加すればいいはず。
beforeFilterに_aclCheck、componentsにはMyAclを追加してね。
function _aclCheck(){
$this->auth =& new Auth(...);
$this->auth->start();
if(!$this->MyAcl->check($auth->getUserName(),
$this->params["controller"]."/".$this->params["action"]))
$this->_permFailed();
}
たぶんこのままでは動かんと思うけど、流れは大体こんな感じ。
権限不足画面などのViewを含めると5行はハッタリだったね、慌てさせてごめんよ。
nightlyにはさらに高機能なdbAclもあるらしい。
agavi で DBに接続したんですけど、下記 $db = $this->getContext()->getDatabaseManager()->getDatabase()->getConnection(); クエリーを発行するにはどうしますか。 MySQLDatabase.class.phpにはメンバー関数がないようだし。
MVCのModelにあたる部分は、Mojaviで言うとどの部分になるのでしょうか? actionsでしょうか? 処理の部分をどこに書けばいいのかがわからなくて困っています。 MVCの記事をかなり読んだのですがどの部分がModelなのかちょっとよくわかりませんでした。
>>602 よくわからんけどたぶんmysql_queryでやるんじゃん?
>>603 MojaviにModelあるけど
ActionはMVCのC
Action内から呼び出す自作またはModelをextendsしたクラスあたりと思っていればよいかと。
おいおいお前ら正気か CってControllerのCじゃないんかよ ビジネスロジックを担当するんだからActionクラスはModelだろ それとももっと違う次元の話か?
Action内でビジネスロジックを実行する場合はAction=M Actionから一層掘り下げてModelを呼ぶ場合は Action=Cになるんじゃないの? 前から思ってたがあまり峻別できない概念だよな。 MVCがお互いを包摂し合ってる部分がある。 音楽のジャンル分けみたいなもんだな。 厳密な区分が最初からあるわけじゃない。
608 :
606 :2005/11/25(金) 16:09:51 ID:???
なるほどね まあ確かにそう使う場合もある罠 もともとWebアプリの世界の話じゃないしな、曖昧になるのは仕方ないというかなって当然 そういう意味ではDBの設計と似てるところがあるかな MVCにとらわれすぎてクソな実装かますのが一番ダメダメ つーか実際書き始めるとMVCとか結構どうでもよくなってくる 設計段階での指針程度にとどめておくべきだろうな
結論
>>603 MVCとかどうでもいいからまず動くように書いてみろ、話はそれからだ
どうしても気持ち悪ければあとでいくらでもリファクタリングするよろし
その過程でだんだんMVCになることもあればそうでない場合もある
っつーのが本質だと思うんだな俺は。
なるほど勉強になりました。 明確な区別はないんですね。 実はもうコーディングをしててformsの下とかviewsの下にもロジックを書いたりしていて 多分違うんだろうなぁ〜と思って聞いてみました。 VIEWを返しているあたりは、action=Cと思ったんですけど、その前に処理を書こうかなと 思います。 formsはどこに当たるかといったら、まぁModelと考えておけばいいですかね。 そういうことがナンセンスなのかもしれませんが。
PHP5.1.0リリースだというのに静かなものだね・・・。 俺が思うに、ある程度知識がないとMojavi使いきれないと思うよ。 とりあえずMojaviでいうViewが必要ないフレームワークにしてみたら?
612 :
nobodyさん :2005/11/26(土) 01:25:15 ID:a7zffmpw
そんな解決はできても難しいし、やるべきじゃない方法だよ。 多分、フレームワークの理解を根本的に間違えてるんじゃないかな。 DocumentRootにindex.phpを置いて、外部からアクセス禁止してる箇所にmojaviフォルダとwebappフォルダを置く。 あとはpath調整して動かすんだよ。
そうそう わかんないうちはとかくなにもかもマニュアルの通りにしないといけない、と鵜呑みにしがちだけど、 少し冷静に考えてみるとどうでもいい事なんてたくさんあるぜよ。 つーわけでindex.phpはどんな名前のディレクトリにあろうがブラウザから参照できる位置に置くべし まーほとんどのレン鯖の場合public_html以下に適当な名前のディレクトリ作ってほりこんでるんでないかね。
mojaviで "class IndexAction extends Action"のようにIndexでactionを指定しても
"
http://xxx/?module=xxx&action=Index "とわざわざ書かないと
Only variable references should be returned by reference と怒られてしまって困ってます。
環境は
PHP 4.4.1-pl1
mojavi 2.0.3 beta です。
それは困りましたね^^;;;;;
617 :
615 :2005/11/26(土) 11:41:56 ID:???
すみません、解決しました
618 :
nobodyさん :2005/11/26(土) 12:33:18 ID:2543W0TM
V _____ /::::::::::::::::::::::::::\ /::::::::::::::::::::::::::::::::::::::\ |:::::::::::::::::|_|_|_|_| |;;;;;;;;;;ノ \,, ,,/ ヽ |::( 6 ー─◎─◎ ) |ノ (∵∴ ( o o)∴) /| < ∵ 3 ∵> ::::::\ ヽ ノ\ :::::::::::::\_____ノ:::::::::::\
PHPでフレームワーク(笑)
あなたも技術者の端くれなら何か有用な情報を書き込んでください。 ここはWebプログラミング"技術"の板です。 煽りは必要ないです。
>>623 迷惑掛けて申し訳ない
しばらくロムります
625 :
612 :2005/11/26(土) 22:44:49 ID:???
>>613 ,614
レスありがとうございます。
なるほど。アドバイスありがとうございます。
出来るだけアドレスを短くしたいんで
index.phpはDocumentRoot直下に置きたいんです。
でもレンタルサーバを借りているんで、そうするとmojaviフォルダとwebappフォルダも
DocumentRootになってしまうなと思いお聞きしました。
外部からアクセス禁止してるフォルダのあるレンタルサーバってあるのでしょうか?
それとも.htaccessで禁止するしかないでしょうか?
626 :
612 :2005/11/27(日) 00:27:09 ID:???
自宅鯖を立てることにしました。ありがとうございました。
mojavi3のviewにあるdecorator ってプロパティーはどんないみあるの
628 :
1-627 :2005/11/28(月) 10:56:11 ID:???
すみません、全て解決しました。
>628 流行ってんの?
なあに、かえって免疫力がつく
cakephpでADODBって実質使えないな… selectLimitらへんとか、あの作り方じゃまともな対応期待できそうにないな
632 :
nobodyさん :2005/11/30(水) 17:47:33 ID:yPyLs/p1
>>495 これどうなったんだろ
携帯に対応しやすいフレームワークって面白いかと思ったんだけど
Mapleの半角<-->全角とかも日本らしいくて、こっちも携帯とか期待できるのかな
>>632 一番てっとりばやいのは、oracle8iとかDB2とか動かすこと。
まともにうごかない。
cakephpのselectLimitのソース見るとわかるけど、adodbの機構一切つかわず
Limit生書き。コメントにも、「adodbがlimit句のsql文取得するためのもの持ってないんで対応できませーん」
みたいなこと書いてある。
ほんとだ... でもこれ、lastInsertId()が単なるプレースホルダーで、呼んだ瞬間にdie()だから、 動かないのは当然だよね? Model::save()で死ぬし(w wikiのドキュメントにあるadodb対応っていう看板はまだ外しておくべきだな。
でもよく考えたら adodb にdbごとの適切なLimit節文字列を返す機構ってあったっけ? adoのドライバのレベルの話? AdoConnection::selectLimit() を使えよって話なら、そもそも "to get correct limit string" するためのものじゃないし、上のレベルのModelはこのために全面改装が必要になるし。
関係ないがadodbはReplaceの形でinsertとupdateもできるようにしてくれ。 あとautoquote時に数字もquoteしてくれ。 text型に入れてても000000が0になる。
どのフレームワークでもいいんですが、フレームワークを使ったオープンソースな ソフトってご存じないですか?
存じております
>>636 >でもよく考えたら adodb にdbごとの適切なLimit節文字列を返す機構ってあったっけ?
文字列を返すのはないよ。
適切に実行することはできるけど
>>639 存じておりましたら存じているものをここへ書いて下さい
quickformでプルダウンメニューの入力チェックしたいんだけど、addruleでやってもうまく機能しません。 何故?
BasicSecurityFilter使うと無限forwordループならね〜か?
日経システム構築に、 セキュリティーの観点からは DB格納の直前にもバリデーション行うべきって書いてた。 確かにそう思うけど、 となるとフレームワーク使った場合、 プレゼンテーション層とビジネスロジック層の 両方でバリデーションすることになるよね。 そのあたりどうしてる? 同じ一つの定義を読むのか、 ビジネスロジック層のバリデーションを簡易的なものにするか…
>DB格納の直前にもバリデーション行うべき なにこれkwsk
>>647 普通はだいたい、
フレームワークに用意されたバリデーションをまず行ってから、
そのデータをDAO的なクラスに渡してDBに書き込むじゃん。
DAO的なクラスでも、
一度バリデーションを受けてるはずだからといってデータを信用するのではなく、
そこでも精査すべきだということ。
コードコンプリートでいう
防御的プログラミングというやつだね。
みんなDAOな作りしてんの? なんかDAOにしちゃうと、リッチなSQL書けなくならない? 又は、ビジネスロジックがDAOに入っちゃう。 だって、リッチなSQLってビジネスロジック含むじゃない?
RDBMSはオブジェクト指向じゃないから。それをオブジェクトで取り出そうとすると、どこかしらに無理が出てくるのはしょうがない。
そんなのは前提としてさあ
DAOって再利用性けっこう低くない?(スキル低いだけって言われそうだけどorz) 再利用性を高くしようとすると、SQLを直につっこんでもあんま変わらないし。 特定の用途にカスタマイズすると再利用がだんだん難しくなるし。 できる奴はうまいことDAO作ってんのかな? それともDAOって毎回がんばって作る宿命?
>>653 DAOを上手く利用しようとするなら自分独自のクエリーを作ってそれを
各SQLに対応したクエリーに変換するclassを自分で作るしかない。
今の段階のDAOは・・・あまり意味がない。
一人で開発してて、手が早いひとならSQLを直に書いたほうがいいんじゃないの。 大規模開発なら、APIを統一しないとやってられないだろうね。
mojavi2ってPHP5で動かないの?
mojavi3 が PHP5 用。
>>657 mojavi3は終了して今mojavi4作ってます。
agaviも0.10 目指してガンガッテます。
>>658 Mojavi4進んでなくない?
これじゃagaviと合体する前に消滅の悪寒。
シンフォニー力入ってんなぁ。
新興フレームワークの方が発展していきそうだね いずれにしろまだどれも固まってないから実務には使えない…
今一番日本語のドキュメントがまとまっているのがEthnaかな? 現在勉強中。
maple、DI入ってるからよさそう。EthnaはまだDIないし。
まあ、Struts→Ethna Seaser→Mapleっていう構図だよな。
>>663 そうだね。
Spring frameworkの紹介記事読んでMapleに興味持ったけど、
フレームワーク初心者にはちとドキュメントが足りない・・・。
後、データアクセス層のサポートがホスィな。
EthnaやMapleは絶対にスタンダードにはなり得ない。 Mojaviでギリギリだろ。実質Zendフレームワークのだけじゃね? EthnaやMapleなんか勉強しても無駄だからやめておけ。
リリースされたZEND謹製フレームワークを見て ケツから血を流すがいいです
kunitタンはEthna,Maple,Seasar PHPと手を広げすぎないで 完成度を高めてほしい、というのはある。どれも中途半端。
どっちかっていうとDI/AOPやらRoRやら概念的なことに手を広げすぎているような あれもこれも取り入れたいってのは分かるんだけどね・・・いつまでたっても完成は出来んわな
mojavi2を使用しているのですが、 php4.4.1でエラーが発生する事を今知りました。 もう開発は終わっているとの事ですので、修正される事はないんですよね? このような点を考慮するとagaviというのを使った方がいいのでしょうか? レンタルサーバの関係でphp5での使用は考えていません。 mojaviは気に入っていたのでmojavi系が良いと思っています。
ソースはあるんだし、修正すればえぇやん
673 :
671 :2005/12/03(土) 23:58:35 ID:QwnhGijP
>>672 確かにその通りです。
今回のエラーは修正できますが、割と時間がかかりそうな場合や
自分では修正できないような時を考えてできるだけメンテが活発に行われている
物を使用したいと思ったまでです。
どっかにパッチあったよ。 どっかに。
676 :
671 :2005/12/04(日) 00:50:01 ID:OBVYrvMK
>>675 どうもありがとうございます。
助かりました。
>>676 というか、バグがあるからmojaviJapanのエラーの修正入っているやつにしれ
ユーザ登録、メール送信、URLのクリックで認証というのをmojavi2でやりたいんですが そういうコードないですかね
679 :
646 :2005/12/04(日) 04:33:57 ID:???
一番嫌なのが巨大なデータをSQLに仕込まれることなので、 データのサイズチェックだけすることにしたよ。 後はサニタイズだけちゃんとしておけば致命的にはならないだろう。
680 :
671 :2005/12/04(日) 22:56:24 ID:gXRf3OY+
>>677 そんなのがあるんですか。知りませんでした。
681 :
nobodyさん :2005/12/05(月) 02:11:12 ID:dkL9yz1o
>>666 PHPの言語仕様自体がころころ変わっている最中なのに、
スタンダードなものは作れないと思われ。
でもオレオレフレームワークで好き勝手に作るよりは、上手い人の
エッセンスを流用して作る方がいいと思うので、現時点でマニュアルが
充実してて、開発を放棄されていない奴を選べばいいのでは?
>681
そうですね、私は別にスタンダードじゃなくても、使いやすければいいか、と思ったりします。
フレームワーク使い始めるまでは無手勝流でコード書いてたし、いまだにmojavi2使ってるし。
また新しいのがでてた。
XOAD
http://www.xoad.org/
フレームワーク祭りだなほんまに 決め手にかけるところがPHPらしいというかなんというか・・・
Mjavi2が主流ですか? それともEthnaやMapleですか? おすすめ教えて
685 :
nobodyさん :2005/12/05(月) 16:17:35 ID:dKNEsuCU
>>684 個人的には maple。
もっとも、そのままじゃ実用に耐えないからかなり改造して使ってるが。
俺は大したもん作らないからguessworkの自主改造版ぐらいで丁度いい。
>>685 ありがとう。Mapleは実用に耐えられないわけですね。 やはりMojavi2かな。
>>686 ありがとう。guesswork ってののあるわけですか・・・。 guessworkはいいですか?
M2も結構手入れしないといけないから グチャグチャになりがち
>>688 guessworkはvalidatorが貧弱だったりするからその辺を補完して、認証とかサイト毎に
必要な機能を付ければ俺的には充分。
作成するファイルが少ないってのも俺好み。
PHP5用のguessworkは結構期待してるんだが なかなか出ないね
つーかガキじゃないんだから日本語の資料とかいらんでしょ? 英語でも読めて当然だろ、普通のSEなら大学ぐらい出てるんだからさ。
>>690 guesswork素敵でつた。 補完したのコッソリ下さい。
「このフレームワークを選ぶ理由は何ですか?」 つー質問に答えなきゃいけない立場の人は大変だろうねぇ。
>>693 なにいきり立ってんの?
日本語の資料の充実度っていう軸でみてなんか不都合でも?
>>696 たとえばメンテナの数や、たとえばコーディングのしやすさ
先に見るべき場所がほかにあるでしょ。
日本語マニュアルなんて、あればいいな程度のものを最初に持ってくる神経を疑う。
>>697 まあそうだけど、フレームワークの概念自体を勉強したいっていうニーズだって
あっていいでしょ?
自分がプロのSEだからって視野が狭すぎ。
>>684 が学生か社会人かもわからんだろうに。
699 :
698 :2005/12/05(月) 17:25:34 ID:???
あ、でも貴方の意見には全面的に賛成なんで、プロの目からみたお勧め教えて。
理解するためのコストが高いと 取り組むリスクが大きくなるから 日本語資料があるに越したことはないね。
>>699 俺が使ってるのはmojavi系。正確には2.00にパッチ当てたりして少しだけ拡張した奴。
メンテナの数が違う…が2,3,4,agaviとメンテナが分離気味なので動向を見守っているところ。
ことフレームワークなどに関しては、勝ち馬に乗るべきだと思ってる。
俺もメンテナが多いのが生まれたらそれに乗り換える。
ただ残念なのは、そうやってフレームワークが普及しても思ったよりネットでのコード共有が進まなかったこと。
みんな自分の書いたものは見せずに、他人のものばかり見たがる。俺もだがw
英語の出来ない部下を持つ身としては、日本語資料は必須。
言い方キツかったのは謝るよ。
すまないね。
>>702 それ結構悲惨だな…でもサンプルコードあったら理解してくれない?
PEARとでも英語しかマニュアル無いもの結構あるけど、どうするんだよ。
>>703 サンプルを用意してあげて、ケツを蹴る。
日本人雇わなきゃいいだけ
706 :
698 :2005/12/05(月) 17:55:32 ID:???
>>701 どうもありがとう。参考になります。
mojaviはagaviと統合してから手を出そうかと思ってました。
こちらも英語ができない部下(しかも直属じゃない)がいて、
しかも自分を含めて本職はSEじゃ無かったりします。
なんで、「わからないならソース嫁」と言いたいところですが飲み込むこともありw
でもメンテなの多さは魅力だな。早いうちにmojaviの資料にも当たっておこう。
707 :
nobodyさん :2005/12/05(月) 18:05:20 ID:dKNEsuCU
mojavi はゴチャゴチャしててちょっとなぁ…。
>693 うはっw こういう奴ってまだいるんだw
愛して欲しいのさ、本当はね
お師様、温もりを…
俺もmojavi4を待ってる状態だな。 邪魔になるかなとは思いつつTylerにメールして進捗を聞いたりした 11月の中ごろにはあと2ヶ月くらいで出来るとのことだったがその後音沙汰がないのが心配だw
>>707 ごちゃごちゃしてるか?
mojavi2系に限ってならだけどかなりシンプルにまとまってると思うが・・・
PHP4はもう置き去りですね・・・
PHP4でもPHP5でも使えるやつってある?
4.40以降に対応してる奴は多分両方いけるでしょ。 意味無いから試してないけどね。
716 :
nobodyさん :2005/12/06(火) 02:35:30 ID:8b+BGlil
待ってたらいつまで経っても開発できないじゃん 現状ではメジャー技術を参考にしつつ自前開発するしかなさげ だいたい大きな考え方はどのフレームワークにも共通するしね
mojavi3いいよ。 オブジェクトの使い方とか理解しやすい。
PHPについて初心者にも良く分かるように説明したサイトありませんか? 書籍の紹介でも構わないのですが。
スレ違い
どうしてこういう事を書けるのかホントに疑問だな
>>718 スレタイ読まないのはまあ百歩譲るとして他のレスちょこっと読めばわかるもんだろ普通
誤爆しただけです。すみませんでした。
あっそう
釣ってみただけです。すみませんでした。
はいはい
全て私一人の自作自演です。済みませんでした。
>>716 そうやって沢山のフレームワークが出てきているこの現状
開発手伝ってやれや
>>653 DAOとO/Rマッピングの区別ついてる?
Agaviあたりが一番無難だと思う。 薄っぺらだから、把握するソースも少なくて済むし。 正式リリースはされてないけど、svnは着々と新しいクラスも 作られてる。 至れりつくせりなフレームワークは、いまのところ完成度が 低いものばかりなので。 pradoは完成度的には高いけど、XMLファイルの設定とか 結構面倒。 個人的にはsymfonyに期待してるんだけどね。
結局Mojaviですよね
あのー、function & getAuthorizationHandler () この、& の意味は何ですか?
それってフレームワーク関係ないでしょ
あのー、じゃあ何ですか?
PHPのくだらない質問スレ
ピリリと辛い
フレームワークのControllerを開始するメソッドの名前が dispatchで、辞書で調べると 「打ち負かす」とか「急送する」とかの意味らしい。 いまいち合ってない気がするけど 何か言われがあるのかな。 executeで良くね?と思うんだが。
実際の処理(ビジネスロジック)をする(execute)のはControllerじゃなくてModelだし、 Controllerは単にリクエストを適切なActionへ発送(dispatch)するからじゃね?
あーなるほど。
dispatchはどっちかというと「割り当てる」って意味だよ。
そこらのフレームワークはStrutsの影響だと思うけど、元々はOSのスケジューラがスレッドをCPUに割り当てるって意味。
MVCフレームワークではリクエストに応じてactionだのviewだのを割り当てるってこと(
>>739 はその意味で当たってると思う)。
loadなんかも「積む」って意味をこえて、メモリからレジスタにデータを読み込むって意味だったものが、ファイルなどの内容をメモリに読み込むって意味に転じて、果てにはWebサーバからブラウザにデータを読み込むってことにまで使われるようになった例だし。
>>730 agavi.jpの更新が完全に止まっちゃってるのが残念だね。
>>744 おお、こんなとこあったんだ。
サンクス。
つか、Ajaviは公式が0.9から全然動きが無いな。
svnは?
zend frameworkキタ━━━━(゚∀゚)━━━━━!!! htp://www.phparch.com/webcasts/recordings/dec0205_zend.php
>>749 英語のプレゼンだからサッパリわからんが
PHPをピィチピーと発音することは分かった
ははは もれもそれ思ったよ!これからピィチピーって言おう!
>749 これっていつごろできるの?
けっこうagaviに似てる気がする
754 :
nobodyさん :2005/12/08(木) 18:17:58 ID:v7tgLnK2
>>741 じゃあdispatchからのforwardってなんなの?
>>754 「転送する」とか「回送する」とかの意味があるから、「処理をまわす」と
いう意味合いじゃないの?
つか、ここは英語のスレじゃないんだが。
Zendフレームワークっていつリリースか明記してある?
±1.5ヶ月でね
>>749 プレゼンが下手糞で途中で飽きた。
文章でまとまってるのないの?
流行りだからって何でもかんでもPodcastすればいいってもんでもないよね。 テキストなら大事なとこだけ拾い読みできるのに。
メディアを云々する前にまずGoogleを覚えようぜ
誤爆ですか?
762 :
nobodyさん :2005/12/09(金) 17:59:40 ID:kJFA21a1
Decorator使ってる時にリダイレクトしたら、 サブテンプレート作成中に処理がブチギレるよね。 ポストフィルタでリダイレクトすべきなのか。 そのあたりどうしてる?
質問です。 mojavi2でSmartyを使っています。 XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。 $lblocks = array(array('title' => 'エラー', 'content' => '<div><{$error}></div>')); $renderer->setAttribute('xoops_lblocks',$lblocks); すると<がサニタイズされて>に変換されて、html上表示されてしまいます。 サニタイズさせない方法ってあるでしょうか?
>>763 $smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>';
てか、、マニュアル嫁
>>764 >>763 の
>XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。
とあるように、その設定はXOOPSのテーマを使うために既にしています。
そのために<と>がサニタイズされて困っているんです。
その設定をしなければ、{と}だけで問題ないのです。
テーマ側に<{$error}>と書けば問題ないのですが、setAttributeで渡そうとすると
サニタイズされてしまいます。
766 :
764 :2005/12/11(日) 01:36:43 ID:???
>>763 >smartyのデリミタが<{と}>です。
これ読めてなかった… すまん、763
767 :
762 :2005/12/11(日) 11:51:35 ID:???
リダイレクト後にexitしてるのが問題だっただけだった。 リダイレクトっていっても ヘッダに出力するだけで、 処理が止まるわけじゃないんだよな。
mojavi3つかってます。 modelで$this->getContext()->getRequest();するのと、 actionで$this->getContext()->getRequest();してモデルに渡すのと どっちがmvc的に正しいですか?
>>768 モデルはコントローラやビューと結合していないのが理想なので、action で
リクエストを取得して、それに応じて model に渡すのがよいと思う。
「結合してない」って言い方は悪いな。「疎結合」に言い替える。
>>768 前者の方がmodelとactionの結合が疎になりやすい。
772 :
768 :2005/12/12(月) 21:33:07 ID:???
どうもありがとうございました。 さっぱりしました。
>>769 えええええええええええ?
だったらなんでmodelに
$this->getContext()->getRequest();
できる機能わざわざつけてあるのさ。
actionもMVCのmodelに相当するんじゃないの?
model内で
$this->getContext()->getRequest();とかやって、
actionでgetModelするのが普通だと思うが。
>>772 よ。すっきりするのはまだ早い
moja3て、Modelがあんだ〜 class HogeModel extends Model って感じ?
>>773 > actionもMVCのmodelに相当するんじゃないの?
違うよ。controllerとmodelのアダプタ(アダプタパターンとは別の意味)。
controllerの一部をコマンドパターンとして抽出したとも見れる。
だから本当はactionはビジネスロジックを書くところじゃないんだけど、ロジックもそのまま書けてしまう手軽さは利点であり欠点でもあると思う。
requestをいじるのはcontrollerであるべきだと思うから俺はaction内でgetRequestして、相応のmodelを呼び出す派。
776 :
768 :2005/12/13(火) 01:51:59 ID:???
やっぱり、model内で $this->getContext()->getRequest(); のはなんか気持ち悪い。
俺もactionでrequest派。 最初はmodelでやっていたが そうなると、起点となるactionを見ただけでは どんなパラメータをいじっているのかが分からず、 流れを把握しにくくなったから。 またリクエストパラメータはどちらかといえば プレゼンテーション層に属するものなので プレゼンテーション層であるactionで受け取るのが理にかなっている とも思う。 バリデーションやコンバートはactionでやってるんだから ノータッチでmodelに渡していても疎結合とは言えないのでは? むしろactionで受け取ってmodelに渡すというレイヤパターンにした 方が疎結合といえる気がする。
model で request 処理すると,model の unit test がやり辛くなると思う それって context と request の両方を外部に依存することになるし action で request を処理しちゃえば model は request の「値」のみに依存することになり より疎結合になる # なんてことを周囲に喋ると「日本語喋れ」とか言われる罠w
記述が楽=疎結合じゃないんだよね プロトコルを増やすわけだからむしろ記述は面倒くさくなりがち
>>773 フレームワークが許容しているのと、理想的な設計との間には
隔たりがあるってことを理解するべき。
元の質問は
> どっちがmvc的に正しいですか?
‥なので、MVC 的には action に依存しない方が理想だろうね。
>>778 のいう「unit test がやり辛い」ってのは、model がフレームワークと
密接に結合していて使い勝手が悪い証拠。結合度が高いので、再利用しずらい
(再利用する時に、間接的にフレームワークにも依存することになる)。
model と action を分離しておけば、例えば、Web アプリとは別に DB に対する
バッチ処理を PHP で書く必要がでてきた時に model を流用できる。
ただ、理想的な設計が、即座に現場で適用されるべきかというと、それは
また別問題だけどな。
>>780 いや、疎結合とかはlib側で考えるもんなんじゃないの?
>フレームワークが許容しているのと、理想的な設計との間には
>隔たりがあるってことを理解するべき。
許容じゃなくて、意図的に実装してるんだとおもうんだけど。
modelは明らかにactionと密接な連携を取るためのものだと思うし。
>model と action を分離しておけば、例えば、Web アプリとは別に DB に対する
>バッチ処理を PHP で書く必要がでてきた時に model を流用できる。
その流用はlibでつくったもののがやりやすいよね。
>>777 自分は逆にactionはどんなmodelを使ってるかの道しるべとして使ってるから
流れ把握は全然困らない。てかむしろしやすい。
てか、そもそもlibの存在忘れて疎結合とか言ってない?
libって何さ、ライブラリ?
なにこの流れ。 スゴいお勉強になるんだけお。
>>780 の言う「許容」ってのはModel内で$this->getContext()->getRequest()できちゃうって話だよね?
>>781 と微妙に噛み合ってないみたいだけど。
つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。
その意味ではMojaviの欠点の一つかもしれんな。
まあ
>>773 から反論がない限りはgetRequestはActionでやるべきってのは満場一致でしょ。
その結論に至る思考プロセスが個々人いろいろなのがおもしろいなw
>>786 ん?かみ合ってないのか?
>つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。
つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで?
だったらかみ合ってないてのはわかるんだけど。
>>784 いや、libはautoloadで定義するやつよ。
こいつにこそ疎結合を求めるもんだとおもうんだけど…
>>786 ちなみにlibとmodelはどう区切ってる?
M2のactionChainがなくなったのも、デコレータだけじゃなくgetModelが 追加されたからなんだと思うし…
790 :
786 :2005/12/13(火) 19:40:45 ID:???
>>787 いや、「かみ合ってない」って言葉が気に障ったなら気にしないでくれ。
疎結合の話に対してではなく、request云々の方で感じたこと。
> 許容じゃなくて、意図的に実装してるんだとおもうんだけど。
の部分ね。
modelとlibのどちらに疎結合を求めるかってのにはノーコメント。
俺の場合はlibにフレームワークのコンポーネントから外れた自分クラスとかは入れないんで。
多くはModelで、あとはSmartyの実装が微妙だったころに改造したViewとか。(最新バージョンがどうなってるのかはチェックしてない)。
> つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで?
まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。
Modelの中でgetRequestを呼び出すのはせいぜいsetErrorするときだけだな。
>>788 前述の通り、俺的には「区切ってる」っていう感覚ではあまりない。
共通して使うものをlibに入れるだけ。
フレームワークだから ある程度の自由度を残してるのは当然ともいえるし どっちもアリっちゃアリだな。
context自体を渡すことがおかしいって言ってるのかと勘違いしてた。
どっちにしても、自分の場合、actionはアダプタじゃなくてmodelで、 action内が複雑になりそうなときmodelに助けを求めるって感じでやってるから。 例えmodel内でgetRequestしても自然なつもりなんだけどなぁ
795 :
768 :2005/12/13(火) 20:11:31 ID:???
じつはagaviでした。 agaviだとみんな食いついてくれないと思ったので. 結果予想以上に皆さんの意見が聞けてよかった。
>>792 うーん、そこのソースのマズイ部分ってとりあえずどこ?w
つーかgetUserをModelでやるのっておかしいかな?言われてみると少し迷うな。
ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。
もろにビジネスロジックかと思うんだが。
>>794 まあどういう風にやっても間違いってことはないと思う。
Actionにビジネスロジックを書いても結果的には「ロジックとデザインの分離」っていう大元の目的は達成されてるわけだし。
>>795 みなさんというか、2、3人だと思うけどね。自分含めてw
>>796 >うーん、そこのソースのマズイ部分ってとりあえずどこ?w
その感想自体が答えですw さんきゅw
>ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。
まぁたしかにgetUserはその辺の機能があるからね。言われれば気持ちはわかる。
ちなみに開発人数はどれくらい?
自分のとこの場合人数が5人で中途半端だから、下手に縛り設けようにもうまく機能しないことが多いんだよね…
フレームワークで許されている権利は使ってよしってことにしてるからってのもあるかも。
userをmodelでいじるのは全然おかしくないと思う つまるところセッションだし。 requestはブラウザから直接送られてくるデータだから、 いきなりmodelにいじらせるには生々しすぎる感じがするな。
>>800 そこはmodelで疎結合かどうかの話でしょ?
>>800 >requestはブラウザから直接送られてくるデータだから、
おいおい大事なget,setAttributeはどこいった?
ひょっとして、getRequest=ブラウザからのデータで話進められてたの?
ああ、attribute忘れてたw 内部パラメータとしてのattributeならmodelでいじってもおかしくはないよね viewに渡すためのコンテナとしてなら、 modelから受け取ってactionでこめこめするのがいいと思う
modelでごにょごにょしたものはactionにいくのか? それともviewか?
>>792-793 model に context が渡ってること自体が気に入らない。理由は
>>796 の人が
述べてる理由が近いかな。
>>805 attribute も model じゃ触らない。ビジネスロジックはコントローラに封じ込
めるべきってのは大体の人が賛成してくれると思うけど、attribute を
ビジネスロジックに一切関係ない使用例を見たことがない。もしあるなら
示してくれると、すごく嬉しい。
一般的(≒ Java の世界)にはそういう流れになってない?
モデルは POJO (getter/setter だけのオブジェクト) にして、必要に応じて
AOP でDAO や O/R マッピングしなさい、と。
Javaとは言語仕様も実際の使われ方も違うのに、StrutsやIBMのホワイトペーパーと無理にあわせてもしょうがない。
>>807 >model に context が渡ってること自体が気に入らない。
えぇ?なんで気に入らないのに
>>796 の人と同意なの?
根本的におかしいぞそれ。
>>806 actionにいってからviewじゃない?
直接viewにいくのはなんか気持ち悪いな
>>807 Model=POPOなの?
そこまで疎結合にするならModelをextendsする意味がないような…
俺はModel≒ビジネスロジックという認識だった。
一般的ではなくm3やagaviで開発する上での話をしているので、
>>807 の話はお門違いなわけだが
mvc的に正しいのはって聞いてるんだから御門違いじゃないだろう
まぁ、お門違いじゃないにしてもおかしなこと言ってるのは確かだな
807は モデルはフレームワーク自体からも疎結合である方がいいって意味だよね。 考え方は分からないでもないけど そこまで疎にする必要がはたしてあるのか… そもそもフレームワークを採用する時点で 全面的な依存を選択しているわけで、 モデルだけを疎結合することにどれほどの意味があるのか
javaが一般的ってのも今は大分微妙になってるけどなぁ
そもそもMVCモデルってそれぞれが密接に関連してるよなぁ 疎を考えるんなら777の言うようにレイヤーパターンで考えたほうが良いと思う MVCパターンをレイヤーパターンに置き換えると VCがプレゼンテーション層 Mがドメイン層とデータソース層 それぞれの層は独立していて別の層を知らないのが理想 actionはドメイン層とプレゼンテーション層の中間層かな? だからactionは プレゼンテーションからの入力(リクエストパラメータ)を受け取る ドメインロジックを呼び出す パラメータをドメインロジックに渡す ドメインロジックでゴニョゴニョした結果をプレゼンテーションロジックに渡す こんな流れがいいんじゃないかなぁ 結論、mojaviのModelクラスはイラネ
>>815 あぁ、激しく同意…
多分agaviも
>>815 みたいな思想があってああいう設計になってるんだと思う。
>>817 それだとactionがちょっとややこしくなっちゃわない?
>>815 >>817 おまいらユニットテストしないんですか?
>>819 むしろすっきりする
actionにロジック書くわけじゃないからね
あくまでAPIを呼び出して使うだけ
mojavi的にはこんな感じ
$id = $request->getParameter('id');
$service = new HogeService();
$hoge = $service->getHoge($id);
$request->setAttribute('hoge', $hoge);
>>817 最後の結論だけ良く分からない
Model=ドメインロジックで問題なくね?
>>820 autoload.iniが大変なことになりそうだ。
>>820 それってデータベースコネクションはどこでどうやって呼出してんの?
autoload.iniの項目が多いとやっぱり遅くなるの? おれはできるだけ使わんやつは消しとるよ。
>>821 概念的にはその通りだけど
mojaviのModelクラスに依存したくないという意味でイラネということです
>>822 それすごく悩んだけど
自前のクラスローダーで解決したお
>>823 DB接続用クラスをSingletonで作成してどこからでも呼び出せるようにしてるよ
DB::getConnection()みたいな感じで
といってもどこからでも呼び出してるわけじゃないけどね
>>825 なんかもうそれ自分ルールだらけじゃん…
まぁ別にそれが悪いわけではないけど
>>825 >自前のクラスローダーで解決したお
それはautoload側をいじったのか、ロード関数みたいなのつくったのか
結論
>>825 のやってることは、agaviのmodelで解決。
無駄な作業乙
もしかしてSingletonModelってクラス? Singletonごときでなんであんなものに頼らなきゃいけないのか疑問・・・。 しかもグローバルに呼び出しできなくなるし
PHPでシングルトンってほぼ無意味だよな。
>>830 まあどちらかと言うと、インスタンス2つ以上作ろうとする方が頭どうかしてるもんな。
Controllerとか。
>>830 リクエスト毎にオブジェクトが生成->破棄されるという意味では無意味だな。
ログとかDBコネクションとかでは使えるけど、それもグローバル変数に入れとけばいいみたいな。
HTTPリクエスト単位で記憶が失われるPHPでは シングルトンって「グローバル変数のオブジェクト指向版」みたいな意味しかない気がする 実際に役に立つのはDB接続みたいなリソース使いまわしくらいって印象が……
>>824 クラスが必要なときのみ読みこむようにその設定があるんだし、そんなに気にしなくてもいいのでは。
まぁ少ないほうが早いに決まってるけど。
>>825 =>817
そこまで行くとMojaviの理念から外れてるし、それはもうmojaviから派生した>817のフレームワークであって、
とても「mojaviを使っている」とはいえないと思うが。
なのでmojavi(agavi)でMVCどうやるのか(requestをどう扱うか)っていう話においては参考にならない。
>>820 も同様
ただ、ユニットテストはMojaviの致命的な欠点だとおもう。
本題の"request"の扱いについてはModelはControllerを知るべきではない、
そして"request"はControllerである。よって"request"は"Model"で扱うべきではない。
とおもうが。
実際はModelでしかたなくrequest呼び出したことありますごめんなさい。
設計が悪かった。反省してます。
オブジェクトの依存性の話なのか設計上の規約も含めるのか判らん
誰か両方の意見をまとめてくり
いや、なんか感動。 疑問は晴れてないけど。
図にしてみたぞ♥
Controller
↓
Request ⇔ Action ⇔ Model ⇔ User,Database
↓
Controller
↓
Request ⇔ View ⇔ Model
|
←|→
プレゼンテー | ドメイン層、データソース層
ション層 |
|
俺にとってActionとはControllerの一部であり、Requestの受付とModelの呼び出し以外のことはしない。
Action::executeすげーシンプルウマー(AAry)。
>>820 、
>>835 と基本的に同じ。
俺にとってModelとはMojavi内で唯一ビジネスロジックを担当する部分である。
ちなみにModel以外はデータ層に触りません!
Modelはどうまとめてる? 俺はOO的にうまいことまとまらない場合は 似たような関数をまとめてお茶を濁してる。
>>839 Model にビジネスロジック入れたら駄目じゃん。話にならん。
>>841 839じゃないけど
俺もModelはビジネスロジックを担当する部分という認識なんだが
きみのいうModelって何?
843 :
839 :2005/12/14(水) 11:46:02 ID:???
>>840 たしかに関数の入れ物に過ぎないModelができちゃうこともあるかもw
俺の場合はSean KerrのAction::executeのコメントで、
* Execute any application/business logic for this action.
*
* In a typical database-driven application, execute() handles application
* logic itself and then proceeds to create a model instance. Once the model
* instance is initialized it handles all business logic for the action.
*
* A model should represent an entity in your application. This could be a
* user account, a shopping cart, or even a something as simple as a
* single product.
っていうやつ(mojavi/action/Action.class.php)をけっこう意識しながらやってる。
Modelはentityを表すってのけっこうしっくりきてるかも。
つーか今読み返してみたら、Sean Kerr的にはActionでビジネスロジックもありっていうスタンスっぽいなw
ただ、基本はModel=ビジネスロジックでしょ。
訳: Actionに対するアプリケーションロジック・ビジネスロジックの実行をします。 よくあるデータベースを用いたアプリケーションでは、execute()の中でアプリケーションロジックを扱い、続いてModelのインスタンスを生成します。 Modelの初期化をしたら後はその中で全てのビジネスロジックを扱います。 Modelはアプリケーション内のエンティティを表すようにすると良いでしょう。 例えば、ユーザーアカウント、ショッピングカートであったり、時には個々の製品といったシンプルなものであることもあるでしょう。
>>844 そうそう。
やっぱり841はビジネスロジックの定義を勘違いしてないか?
エンティティーのメソッドはすなわちビジネスロジックだし。
Model=ValueObjectと勘違いしてる気がする。
みんな言葉の定義が微妙に違ってるだけだと思う。
というか、レイヤとモデルを微妙に混同してるのかも。
ドメイン層のレイヤにビジネスロジックがあって、
そこで操作されるものがドメインモデル(エンティティ)。
これをそのまま実装に反映させるなら、
ドメインモデルとビジネスロジックは別クラスにするのが自然。
だけどケースバイケースで、ドメインモデルのクラスが
ビジネスロジックのメソッドを持つ実装にするのもあり。
どちらがいいかは一概には言えないと思う。
>>845 それは違うよ。
ValueObjectはどちらかというとドメインモデルではなく
プレゼンテーションモデル。
ドメインモデルをそのままプレゼンテーション層まで引きずってくる
設計方針ならValueObjectぽっく見えるかもしれないけど、
プレゼンテーションモデルをきっちりわける設計方針なら
>>841 の言ってるモデルはドメイン層で閉じてるはず。
俺定義で議論してないでPoEAAを読め、ってことだ。
高いから譲ってくれ
O'ReillyのSafari Bookshelfに入れば$19.95で読めるよ。
日本語訳本買ったけど読んでねーや ValueObjectがプレゼンテーションモデルってどゆ意味? 単に値を持たせるオブジェクトだから どんな層にでも入ってくる汎用的なパターンだと思うんだが
> 単に値を持たせるオブジェクト 自説を立てるときはそれなりの手順を踏襲してほしい
>>839 >>843 を意識してるんなら、Actionはドメイン層、データソース層に入ることもあるだろ
854 :
839 :2005/12/15(木) 03:13:21 ID:???
>>852 たしかにそうだね。それが
> つーか今読み返してみたら、Sean Kerr的にはActionでビジネスロジックもありっていうスタンスっぽいなw
と言った理由なんだけど。
ただ、俺自身はドメイン層の処理はModelでやる方針でやってるって話。
Actionでドメイン層・データソース層に手を出すのも利点があるなら大いに結構だとは思うよ。
>>853 えーっと一応言っておくけど
>>839 は設計(or実装)方針の話ね。
(それまでの議論の内容も多少加味したつもりなんだが偏見もあるかも・・・)
あと、そこのサンプルは
>>844 の「ユーザーアカウント」にあたるものをModelとして抽出せずにActionで済ませちゃってるんだね。
だから839と違って見えるってのも無理はないかも。
まあロジックが複雑になってきたらそんなことは言ってられないので俺は認証用に作ったModelを再利用してるよ。
必要ならそのModelをもう一段継承してカスタマイズとかできるのでそこそこ便利だし。
856 :
839 :2005/12/15(木) 03:51:45 ID:???
>>855 たぶんUMLを見慣れてる人が多いんだろうから誤解を与えたかもしれないけど、
>>839 は「依存関係」を表してるつもりじゃなかったんだなぁorz
Controller→Action→Controller→Viewってのは制御が移る順番。
他の⇔はデータの受け渡しであって、基本的にはメソッドの呼び出し+リターンなので制御が移る順番としても解釈できるかも。
>>855 が依存関係の話を持ってきてくれたのでそれも考慮すると、⇔の矢印をすべて外側向きに変えたら少しはましになるかな?
矢印の意味は
・依存してる側→依存されてる側
・呼び出し側→呼び出される側
という関係で。(唯一Action→Controllerの部分だけリターンなので矢印の色でも変えてくださいw)
「ビジネスロジック」って言葉は俺も再考する必要があるかも。
>>846 をもうちょっと咀嚼してみる。
そこまでごちゃごちゃ深いこと考えなくても、 保守性の高いコードってWebアプリケーションなら結構つくれちゃうからなぁ… ビジネスロジック云々より、ビジネスや運営自体について考えてたほうがよっぽど金になる
859 :
839 :2005/12/15(木) 04:09:49 ID:???
>>858 俺的もそう思う。どっちでもいーじゃんおまいらw、と
でも「間違っている」というつっこみをたくさんいただいたので、ヘコみつつ悪戦苦闘中であります。
>>855 マジでAgaviのView周りってModelに依存性あるの?
ステートレスなWebアプリでは切り離されてるのが当たり前だと思ってたけど。
アクティブモデルにせよオブザーバはかませるっしょ
>>860 Agavi自体の仕様では依存性は発生しないよ。Modelは一つもなくても動くし。
でもModelを使った時点で依存はゼロではないと思われ。
「切り離す」ってのはいわゆる疎結合にするって意味だとは思うけど、元々依存してしまうものだからせめて疎結合にしましょうって感じじゃなかったっけ?
>>855 の言ってるのは、逆向きの依存はゼロってことでしょう。
「Viewを変更したらModelが動かなくなりました」とかしゃれになんないし。
でもModelを変更したらViewに支障が出るのは仕方ない。
それでも最小限にしましょうってのが疎結合だと思う。
オブザーバはContextのことでおkかな?
依存性=オブジェクトをNewするかパラメータに取ってメンバにアクセスすること 結合の程度というようなファジーなものは存在しない Framework界隈で依存性といったらこれのことだと思う
> 結合の程度というようなファジーなものは存在しない 疎結合って結合の程度がゆるいことじゃないの? つーかどのレスに対してなのか反論なのか何なのかわからんな。
865 :
863 :2005/12/15(木) 06:11:06 ID:???
直上に対するレス
結合にはもちろん程度があるよ
しかし依存性にはそういうものは無くゼロイチだということを言ってみた
>>860 と
>>862 の愛でどうも考えている依存性が違って
かみ合ってないように見えたので
× 愛で ○ 間で すまん 間違ったものを芽生えさせた
>>860 Modelにするにせよ別もんにしてつくるにしても、
初期のViewだけじゃなにもできんじゃん。
ごてごてタグとテンプレートと定数混ぜることになってしまう。
その辺のモデルもつくるでしょ?ふつう
いや、Mojaviだとビジネスロジックの呼び出しはアクションあたりに集約するのが一般的だと思う ビュー内でモデルは呼び出したくない
>>868 MVCはもともとそういうものだけどな。View - -> Model
870 :
862 :2005/12/15(木) 06:21:54 ID:???
>>865 そかそか。曖昧な言い方ですまんかった。
基本的には「依存性はゼロイチ」ってのは同意だよ。
だから
>>860 への答えはViewからModelへの依存性は「あり」。
ただ「切り離されてるのが当たり前」って表現をしてたので、862で「それは疎結合のことであって≠依存性だよね」っていう意味で言った。
>>868 実際にはそうだよなw
モデルをフレームワークから独立させる派は モデルからUserにアクセスする必要がある時はどうやってるの?
>>872 モデルはフレームワークに依存していない設計なので、
モデルから User にアクセスする必要がない。
extends Modelすらしないってこと?
Mojavi系の場合DBみたいな下層にも入ってくるから フレームワークに依存しない設計がいまいちイメージしにくいな
というか、一度 Mojavi を頭から追い出して一般的な設計の話をしろよw もうあんな設計は古いって…。
話変えたいなら自分から話題を提供すればいいのに
スルーしとけ
Mojaviはたたき台としてまだ価値あるだろ 影響受けてるフレームワークいっぱいあるしな
rails!rails!
PHP on TRAXときたか
S2Baseがいいと思うんだけど、どう? ValidateやらFilterは自作になるけど、結構いいと思う。
S2PandNで出席者が質問してたが、S2やMapleのDIはどこまでパフォーマンスが出るか疑問。 プロダクトとしてリリースするなら、自分のところできちんと性能評価をやった方がいいよ。
もうMojaviでいいや。
S2をそのままPHPに移植してるのかな
887 :
768 :2005/12/16(金) 09:02:11 ID:???
zend framework待とうよ!
末広がりget, zuzaa
Mojavi初心者なんですが エスパー募集してもよろしいでしょか?
891 :
889 :2005/12/16(金) 18:51:08 ID:???
>>890 そうですか、失礼しました。(´・ω・`)
POSTされたデータをDBへupdateする場合はmodelでするの?
>>890 多少質問あったほうが盛り上がるからいいんで内科医?
>>892 基本的にvalidationはactionでやり、DBの扱いはmodelでやってるけど、このスレ読んでたらもしかしたらactionでやったほうがいいのかな?とも思えてきた。
あー、エスパー募集はよろしくない罠w
>>892 modelを作るほど複雑でなく(単なるログとか)、
また他のアクションで同じ機能を利用しないならアクションで済ませてしまってもいいとは思う。
>>896 modelでDBに登録するとしたらサニタイズもmodelでやるってことになる?
でないとmodelがactionに依存してしまう気がするんだけど。
そしたら サニタイズはactionでやるべきだね。
アクション前にフィルタ処理は済んでるはず モデルは自身のためのサニタイズは自身で持つ いずれも定義は括りだす
インプットフィルター → アクションDeバリデーション → モデルサニタイズ てことか。 実際どこで何をやるんだろ。
つーかModelでDBに書き込む場合、フィルタでサニタイズするのもおかしいじゃん。 てことはActionでDBに書き込むのが正しい?
ありえなす
俺はmodelからdbクラスいじってやってるけど。
mojaviの質問はどこですればいい?
ここですればいいよ 答えが返ってくる時もあれば返ってこない時もあるけど
>>904 あなたの質問がこのスレの命運を決めるかもしれません。
慎重に質問してください。
何のプレッシャーだよw
>>908 多分PHP5.1に変えたんだろ
timezone関係の警告でてるし
バージョン上げてからチェックしないとはアホもいいとこだなw
>>911 逆だろ
チェックしてからバージョン上げないなんてアホもいいとこだなw
まあフレームワークのサイトが 危機管理意識なしでエラーメッセージ垂れ流しっていうのは あまりよろしくないよなぁ。 そもそも確認すらしないのかと。
あれ、こんなエラー自分の環境じゃ出なかったのに
isSecure()
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 ここのサイトではちゃんとできているようだけど、
同じようなトラブルにあっている方はいますか?
そのドキュメントは古いよ BasicSecurityFilterの使用はsettings.iniのUSE_SECURITYで決定する filters.iniに設定する必要はないよ
o
>>916 ちがうでしょ。
controllerでは下のように条件分岐している。
if (USE_SECURITY && $actionInstance->isSecure()) {
>>918 なにが違うんだ?
USE_SECURITY && $actionInstance->isSecure()で
filterChainにSecurityFilterが登録されるわけだが。
なんでfilter.iniで再登録する必要がある?
$actionInstance->isSecure()の意味解ってないだろ
>>920 申し訳ございません。
私が間違ってました。
俺も間違ってた・・・。 再登録以前に、filters.iniにBasicSecurityFilterを登録したら 未認証時に遷移するはずのLoginAction自体にもBasicSecurityFilterが適用されて強制無限ループ。 正確には、forwardが20回再帰すると例外投げるから無限ループにはならないみたいだけど。 すみませんでした。
それそれ! BasicSecurityFilterは$this->loadModuleFilters($filterChain); でregistすると、ループする。 (Default_LoginActionにisSecure ()適用したと同等の現象) いちいちactionでisSecure ()をtrueに書き直すのめんどくさい。 何とかなりませんか
mojaviでadodb+DB_Object使ってる香具師いる?
その組み合わせってなんか変じゃね?
headerを出力したいんだけど、viewにそのまま書いていい?
>>925 変だからやってる香具師いるかなぁと
普通ならPEAR::DB+DB_Objectだろうけど、PEAR::DBってadodbより遅いって言うし。
そこでPDOですよ。
>>925 viewに書くのか。
新しい考えだけど俺はactionに書いてる。
だってviewじゃないし。
>>927 DB_DataObjectは確かに内部でDBを使っているが、
基本的に抽象レイヤーと組み合わせて使うもんじゃないぞ
DB_DataObjectのソースに手を入れるなら別だけど
DB_DataObjectつかうならFlexyもどうぞ。
>>931 Alanさん早くDBDOをFixしてください
というよりみんなは何を使ってるの? PDO使いたいけどPHP5.1で動かないアプリがあるからムリポ DB_DataObjectで楽するかadodbで早さを取るか迷い中
agaviサイトまだエラー直ってないじゃん やる気ねーーー
Mojavi2は PHP5で動作しますか?
>>933 そもそも PHP を使ってない(゚Д゚)
コスモを感じる
agavi直りますた。
Mojavi < agavi < 江角 < Maple ? 今、Mojavi勉強中なんです。 ながら気になってます。
mojavi以外ならどれでも自分が使いやすいのを使えばいいと思う。
ありがとう。Mojavi以外を考えたほうがいいのか? Mojaviを習得するか? Mojavi覚えるの大変なんですが、何日くらいで慣れますかね?
M3かagaviをすすめる。 オブジェクトを理解するのにちょうど良い。
M3とは?
mojavi3
あれ?ひょっとしてagavi0.10.0が出た話題出てない?
そういえば出てないねぇ。ってかagavi自体の話もあんまり無いような・・・
おお!agavi0.10.0がほんとにでとる! アップデートしてそのまま使えるんか
agavi Mojavi3 Ethmi Makiko 結局Mojavi2で落ち着きました。 その後はまた考えます。
php4つかってんの? 後々のこと考えるとphp5とm3の方がいい。
フレームワークを使うならPHP5+なんかだろうね。 php4使うぐらいならフレームワーク使わないでいいと思う。 どうせ将来性ないし。
まだまだPHP4が使われつづけると思う。 今のようなPHPの使われ方なら、PHP4で問題ない。
プロシージャ系を想定してるんだろうけど 開発者の一人がもうphp4固有のバグなんかは直さないよというような ものは使わないほうがいいと思う
というか非OOのフレームワークって見たこと無いや
agavi0.10.0使ってる人、レポよろ
>>956 このスレにまでそんなコピペが貼られるご時世かよ
>>955 初フレームワークにAgaviを選択してみました。
英語がさっぱりなので、ドキュメントもなんとなくしか
わからないのですけど、すごく良い感じですね。
日本語情報がすごい少ない以外は今のところ不都合ないです。
ってレポになってないですね・・・。
>>956 そういうさ、途中で叫び声入るようなドッキリ系張る奴って、そんなに驚いたのか?
叫ばれてもお前に腹立つだけで、広めようとかまったく思わなかったんだが。
ちょwww
今PHPのサイトもエラ−になってる
http://www.php.net/ Fatal error: Call to a member function on a non-object in /local/Web/sites/phpweb/include/ip-to-country.inc on line 65
直ってる…
非SQL型のアプローチって 逆に手間増える場合も多いね。 抽象化レイヤ一枚かぶせただけみたいな形になって しかもインターフェイスを憶えにくいからコーディングがノロノロになった。
非SQLていうと、ldapとか、XMLで問い合わせるDBとか? べつにそういう印象はないけど、慣れの問題じゃない?
いや、ldapとかXMLじゃなくて、 RDMSに対して生SQLを書かずにアクセスできる ラッパークラスのアプローチ。 たしかに慣れたら速く書けるんだろうけど ガンガン進みたい時に「あーウゼー!」ってなる。
>>966 わーい、仲間発見
可読性上がるし、エスケープ忘れ無くなるので、
がんばってるけど、SQL直書きに比べるとめんどいよね
そういえばcakeとかのactiveredord実装は面白い。 インターフェイスがとても簡単なのもあるけど、生SQLはほとんどLEFT JOIN一本槍で もう効率とかギリギリまで行く必要ないじゃん? みたいな思想に萌える。 findBySql()で、カスタムなsqlを飛ばしても、簡単なルールさえ守れば スムーズにModelフレームワークに組み込むことは出来るし、 その気になれば複雑なjoin条件をモデルに指定する事もできるようだ。ドキュメント無いけど。 さて、そろそろ布団から出て宴会に行く支度するか。
> LEFT JOIN一本槍 あれMysql5系でどーすんだろ
>>969 mysqlのleft joinに何か問題あるの?
問題ない
>>969 いやINNERJOIN+WHERE句で結合だから
MySQL5関連はサポートレベルではみんな困ってるみたいね。 JOIN関係で修正が必要になるのはON句でこじゃれたことしてる場合だけでいいの?
valueクラスつくって(下記)ユーザの情報を入れるんだけど、 DBからユーザ情報をたくさん取得してこのオブジェクトにセットした場合 オーバーヘッドがすごいですよね。 複数のユーザ情報をvalueクラスにセットする場合ってどうやってますか? class userValue { private $userId; private $name; private $mail; function getUserId() { return $this->userId; } }
>>974 いわゆるActiveRecordみたいなことをしたいなら、__getや__setをつかうのがよいかと。
つーかオーバーヘッドがすごいってどういうこっちゃ?
連想配列使うのが速いに決まってるよな。
俺はVOは基本連想配列使ってるなぁ。 場合に応じてValueListクラスを作ることもある。
わかりました。 private $userId; private $name; private $mail; private $userAR = array(); こうやって対応しました。
>>978 PHPの場合連想配列があるから
こんな感じで作ったほうが使いやすくない?
private $_data = array();
function set($key, $value) {
$_data[$key] = $value;
}
function get($key) {
return $_data[$key];
}
php5を使っているのならコレクションクラスはイテレータを使って上品にいきたいところだ。
つーかZend Frameworkいつ出るか誰か知ってる? Ruby on Railsに酷似しているという噂もあったり・・・? あと誰か次スレ立てて。
来年の今頃じゃない?勘だけど>zendフレームワーク
来年の今頃出されてもPHP自体が終わってると思うよ。
来年の今頃なんて、おいらプログラム書いてないかも知れないっスよ( ´・∀・`)
>>982 そんな遅くないでしょ
この間のプレゼンでドキュメントを数週間以内に出すって言ってたけど
まだ出てないのかな
こういうのは遅れるのがデフォだからなぁ。
WEB+DB PRESSの新刊に agaviの記事があったよ。 今回は他にもPHPの記事が結構あった。
mojavi3で作ったアプリ HTMLのiframeからべつのphpファイルを指定し そのphpファイルからmojaviで認証されたユーザー情報を参照したいのですが どうすればいいでしょうか。 内緒なデータなので$_GETでは渡したくないです。
mojaviなんですが、ファイルのアップロードとか自作クラスを何処においてますか? 普通、Lib/下に置くものなんですか? opt/下に置くものなんですか?
Smartyなど共通クラスはLib/下に置いてます。
RubyがもっとしっかりしてくれたらPHPなんて使わずに済むのに
Javaにしとけ
まさかJavaよりRubyのほうがスケーラビリティ高いとか言わないよね? そもそもPHPだって設計きちんとやれば見下ろすほど拡張性低くないのにね。 まあJavaは言語仕様自体が拡張性上げてるようなもんだし。 特異メソッドだの特異クラスだのクロージャだの溢れかえったRubyにスケーラビリティのスの字もないと思うけど。 拡張モジュールをCで書いたりなんてことになると、もうね。 それより、Zend FrameworkはPHPネイティブらしいし、スケーラビリティに関して少しは期待していいかと。 RoRと比べてどうかとかは出てからじゃないと何ともいえないけど。
996 :
988 :2005/12/29(木) 17:02:56 ID:???
これはセッションしかないなと思い、iframeに表示している別のphpファイルで session_start(); してvar_dump($_SESSION); しましたが、array(0) { } となってしまいました。mojaviの$userValueオブジェクトが セットされているのですがセットされていませんでした。
次スレ立ててきます。
998 :
997 :2005/12/29(木) 17:42:43 ID:???
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。