【PHP】フレームワークについて語るスレ7【総合】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2007/06/09(土) 09:48:36ID:6f8TWb7Z【PHP】フレームワークについて語るスレ6【総合】
http://pc11.2ch.net/test/read.cgi/php/1171896620/
[PHP]フレームワークについて語るスレ5[総合]
http://pc10.2ch.net/test/read.cgi/php/1159579507/
[PHP]フレームワークについて語るスレ4[総合]
http://pc8.2ch.net/test/read.cgi/php/1151706907/
[PHP]フレームワークについて語るスレ3[総合]
http://pc8.2ch.net/test/read.cgi/php/1145971945/
[PHP]フレームワークについて語るスレ2[総合]
http://pc8.2ch.net/test/read.cgi/php/1135847024/
【PHP】フレームワークについて語るスレ【総合】
http://pc8.2ch.net/test/read.cgi/php/1123608068/
0809nobodyさん
2007/09/27(木) 20:40:32ID:???単純なクエリ(俺は”単純なクエリ”にJOINを使ったものも含める)が
それがほとんどなんだけどね。
> こんな定型的で単純なクエリいちいち書くの面倒だな、ってとこだけ
> ORM側でクエリ生成してもらって
ORMで解消される面倒な部分はクエリ生成部分だけじゃないでしょ?
もっと面倒な変数への代入をやってくれるのがいい。
JOINが含まれている場合、ORMを使わないとベタな二次元の表にしかならないが
ORMならコードで扱いやすいようにちゃんとした階層構造になっている。
ORMとは、その名前の通り、オブジェクト と リレーショナル のマッピング。
普段オブジェクト指向でプログラミングしていたら、ベタな二次元の表は扱いにくい。
> ただphpのORMがどれも使いにくいのは分かる、
で、肝心の使いにくいと言う理由は?
それがないと、なんだかなぁで終わり。
>>793さんはORMに慣れていないってだけで、
ORMが使いにくいとは言っていないと解釈した。
つまり使いにくいと言っているのは>>808だけ。
0810nobodyさん
2007/09/27(木) 21:28:14ID:???JOINを使わない場合、二次元の表にしかやりようがないわけで、
それくらいなら、直接データを扱っても変わらない。
ここで勘違いさんは、ORM使わないでやったほうが良いじゃんと思う。
本領発揮のJOINが含まれている場合だと、アソシエーションという新しい用語が
でてくるため、勘違いさんはORMはわけわからんとアソシエーション以前の知識で思考停止する。
単に一対多とかいう情報を設定しているだけなのにね。
この二つの勘違いから、ORMを使う必要はないし、
JOINをやるときは複雑だ。という結論になるんだろうな。
本当は、特にJOINが含まれるようなときに面倒な部分がかなりなくなるから
ORMを使ったほうが便利。なのにね。
0811nobodyさん
2007/09/27(木) 23:19:39ID:???使いにくいよ
cakeだとそもそもデータ取得して戻ってくるのオブジェクトじゃなく配列だし
model自体(取得して返って来るレコードオブジェクト)の拡張できない
symfonyのpropelはmodelの生成でファイル増えまくるし
Criteriaは冗長過ぎる、生で書いた方がマシ
0812nobodyさん
2007/09/28(金) 00:31:17ID:???とりあえずcommon.phpに戻ってみ本当に自分にFWがいるのか再考してみたら?
0813nobodyさん
2007/09/28(金) 00:35:06ID:???modelの拡張? 継承して普通にやっているが?
検索後のデータを内容を加工したり、またセーブ直前にデータを加工
(たとえばひらがなをカタカナに変換するなどしていれたり何でも出来る。
ひらがなをカタカナに変換する例なら、behaviorを継承したオブジェクトを作って
beforeSaveで変換すればいいだけだな。
データベースに無い合計フィールドを付け加えるとかいうのなら、
単にAfterFindでデータを付け加えればいいだけだな。
手間はデータがオブジェクトである場合となにもかわらない。
こういう実装になっていますって言っているだけじゃ使いにくいの説明になっていない。
具体的に、どんなことが出来ないのか言ってくれないとわからないなぁ。
> 生で書いたほうがマシ
いやさ、生でかいたらデータは配列だよ?
自分でオブジェクトじゃなければ使いにくいと言っておきながらw
0814nobodyさん
2007/09/28(金) 00:36:16ID:???読む気にならないなら、読まなければいいだけw
ぐちぐちいいながら見る必要は無いんだよ。
馬鹿じゃない? だまっていなくなれば問題なし。
0815nobodyさん
2007/09/28(金) 00:39:35ID:???> とりあえずcommon.phpに戻ってみ本当に自分にFWがいるのか再考してみたら?
再考するまでも無いな。フレームワークとかそんな大げさに考える必要は無い。
common.phpを何倍も便利にしたライブラリ。
より便利なライブラリを使う。
それだけの話
0816nobodyさん
2007/09/28(金) 00:57:02ID:???精神論ばかりでなく、コードを提示して
ほら便利だよとか言って欲しい
0817nobodyさん
2007/09/28(金) 02:12:27ID:???> > 生で書いたほうがマシ
> いやさ、生でかいたらデータは配列だよ?
> 自分でオブジェクトじゃなければ使いにくいと言っておきながらw
propel の Criteria が冗長すぎて、生で条件を書いたほうがマシって話だろ。
0818791
2007/09/28(金) 06:12:15ID:???>>794
>複雑どころか、なんと書く必要すらない。
>
>まあ、何もないところからJOINがでてくるわけないので何かの情報は
>必要なわけだが、ER図で、1対1とか1対多とか多対多とか定義するでしょ?
>あの情報を、このテーブルは他のテーブルとどういう関係にあると書くだけ。
書く必要ないって、・・・書いてんじゃん。w
オレもORMは使うよ。でもCakePHPは使ったこと無くて、
Cakeではあの配列をORMっていうのか?って思ったから聞いただけ。
MLでもなし、にちゃんでいちいち勉強してから書き込むかっつの。
791はORM知らない。ORMは銀の弾丸。根拠なしで思い込みで言っちゃってるでしょ?
0819nobodyさん
2007/09/28(金) 14:27:29ID:???0820nobodyさん
2007/09/28(金) 15:42:35ID:???オブジェクトにするにしてもほとんど単なるValueObjectだろう
0821nobodyさん
2007/09/28(金) 21:06:07ID:???だってさ、配列といったら俺でも不便に思うけど、
それは a[0] ・・・これがID、 a[1] ・・・これがタイトルという風に
インデックス番号でしかアクセスできないからでしょ?
もちろん実際はそんなことは無く、名前でアクセスできるわけで。
それからCakePHPの話だが、Modelの中のデータが配列で格納されているだけであって、
Model自体はクラスだよ。
0822nobodyさん
2007/09/28(金) 21:17:02ID:???自分だけの定義で話をすんな
0823nobodyさん
2007/09/28(金) 21:37:50ID:???まったくの不正解。
0824nobodyさん
2007/09/28(金) 22:00:36ID:???それをわかっていない奴がいる。
0825nobodyさん
2007/09/28(金) 22:10:49ID:???0826nobodyさん
2007/09/28(金) 22:17:06ID:???要するに峻別できるもんじゃねーんだよ
それをとりあげて正解だ不正解だいってるお前の頭が不正解
0827nobodyさん
2007/09/28(金) 22:34:12ID:???0828nobodyさん
2007/09/28(金) 22:38:46ID:???気の利くUIを、動作調整しながら丁寧に作ってたりすると、
それだけで一日くらいすぐ経っちゃう。
0830nobodyさん
2007/09/28(金) 23:17:57ID:???0831nobodyさん
2007/09/28(金) 23:33:18ID:???話の主旨は「配列なのか連想配列なのか」ではなく
「(連想)配列なのかオブジェクトなのか」だろ?
array_map() とか使える配列もなかなか便利だけど
メソッド定義で拡張できるオブジェクトの方が潰しが利くと個人的には思う.
>>813みたいな例でいうと
後で必要になる形式のデータを配列作成時に全部生成しておくより,
必要に応じてメソッド呼んで使う時に使うデータを生成するって方が
個人的には好みだ.
0832nobodyさん
2007/09/29(土) 00:03:46ID:???Model自体はオブジェクトだってw
0833nobodyさん
2007/09/29(土) 00:04:04ID:???どんな使い方が考えられるんだろうか。
0834nobodyさん
2007/09/29(土) 00:26:51ID:???配列≒連想配列≒≒≒≒≒オブジェクト
でいいじゃん
聞いててもつまらん話題だ
0835nobodyさん
2007/09/29(土) 00:32:17ID:???オブジェクトが必要ならオブジェクトを使う。
PHPでオブジェクト(クラス)が使えないとでも思っているの?
0836nobodyさん
2007/09/29(土) 00:43:09ID:???> オブジェクトが必要ならオブジェクトを使う。
なかなかインテリジェントなORMだな。
0837nobodyさん
2007/09/29(土) 00:49:31ID:???CakePHPの場合はModelはオブジェクトだね。
だからなに?って感じなんだが。
0838nobodyさん
2007/09/29(土) 01:40:05ID:???ttp://d.riaf.org/rhacosns000
>>690-702あたりでも出てたようだけど誰か使ってる人居る?
0839nobodyさん
2007/09/29(土) 02:27:38ID:???0840nobodyさん
2007/09/29(土) 17:51:34ID:???0841nobodyさん
2007/09/29(土) 22:14:50ID:???間もなくCake本登場!!
今日のPHPカンファレンスで安藤さんが発表されていると思うので、ここら辺で発表・・・。
世界に先駆けて?CakePHPフレームワークの解説本を出すことになりました。
CakePHPの紹介
Cakeに特徴的な、モデルの使い方詳説
コントローラ、ビューについても解説
PHPプログラミングで必要とされるセキュリティの知識、CakePHP流に実現する方法
Ajaxの隅から隅まで
マイコミ出版から、10月に出版される"予定"です
0842nobodyさん
2007/09/30(日) 08:54:43ID:???0844nobodyさん
2007/09/30(日) 13:43:07ID:???データベースを使う大規模なウェブサービス → CakePHP
こんな感じか。
あと個人的にはどうしても世界レベルではやっているもので
なければ使いたくないな。
0845nobodyさん
2007/09/30(日) 14:36:51ID:???0846nobodyさん
2007/09/30(日) 14:43:18ID:H/GK0oDX0847nobodyさん
2007/09/30(日) 14:44:39ID:???>世界レベルではやっているもの
それはそれでマルチバイト圏が割と忘れ去られているという罠もありえるしな。微妙。
0848nobodyさん
2007/09/30(日) 14:50:05ID:???utf8があたりまえになりつつあるから、
昔より敷居は低くなってるんじゃないかな
ま、utf8ですべて解決とは言わないが
0849nobodyさん
2007/09/30(日) 17:38:06ID:???世界レベルといったろー。
マルチバイト圏も当然含まれる。
EthnaはEUC-JPが前提
中国語とかやばい。
0851nobodyさん
2007/09/30(日) 19:51:06ID:???0852nobodyさん
2007/09/30(日) 20:37:44ID:???0853nobodyさん
2007/09/30(日) 20:42:04ID:???0854nobodyさん
2007/09/30(日) 21:55:19ID:???便利に使えればOKっていうやつがおおいからだろ?
0855nobodyさん
2007/09/30(日) 22:09:39ID:???0856nobodyさん
2007/09/30(日) 22:35:08ID:???0857nobodyさん
2007/09/30(日) 22:48:34ID:???0858nobodyさん
2007/10/01(月) 00:21:21ID:???0859nobodyさん
2007/10/01(月) 03:32:13ID:???オープンソースなんだから。
0860nobodyさん
2007/10/01(月) 10:45:26ID:???0861nobodyさん
2007/10/01(月) 12:11:22ID:???たぶん、Railsゆずり。
RailsはRubyの強力過ぎるリフレクションでどうにかまとまっているようにも見えるが、
PHPで書くとなんだかRailsの悪いとこだけコピったような感じになる。
0862nobodyさん
2007/10/01(月) 12:43:06ID:???具体的に言うと?
Railsでリフレクションの機能は当然使っているだろうが、
それでも、最低限の機能しか使っていないと思うんだが。
0863nobodyさん
2007/10/01(月) 13:50:18ID:???え、ソース読んだことある?
とくにActiveRecordの宣言チックに機能追加する部分はほとんどリフレクションのはず
module_eval とか instance_eval とか method_missing とかで検索するといい。
こいつらのいで、機能の定義場所が追えないことが良くある。
0864nobodyさん
2007/10/01(月) 14:22:27ID:???いやね。何がいいたいかと言うと、一言で言うと、
それのどこが「強力すぎるリフレクション」なの? ということ。
たとえば、CakePHPなら、model->findBy○○(△△)で
データベースの○○フィールドが△△のものを検索とかね。
もちろん、findBy○○メソッドが定義されているわけじゃない。
実行時にメソッド名からフィールド名を取り出して検索している。
そのレベルのリフレクションなら、ほとんどのオブジェクト指向言語にあるよ。
無いのは純粋なC++ぐらいかな。
0865nobodyさん
2007/10/01(月) 14:44:34ID:???ideの自動補完も使えないってことか
そんなのいらねー(#・д・)、ペッ
0866nobodyさん
2007/10/01(月) 14:55:00ID:???なんでそこに突っかかるのかよくわからんけど、PHPと比較しての話でしょ?
それにその程度というが、module_evalなんかはたとえばJavaでは難しかろうと思うが
0867nobodyさん
2007/10/01(月) 14:57:15ID:????と思っただけだが。
0868nobodyさん
2007/10/01(月) 15:04:13ID:???0869nobodyさん
2007/10/01(月) 15:05:36ID:???メソッド定義そのものを書き換えられるなんて
rubyの強力な機能以外の何者でもないと思うが
で、それは同時に諸刃でもある
リフレクションは自身の定義の読み取りだけじゃなく書き換えもある
phpは読み取りのリフレクションは備えてるけど
メソッドを直接書き換えたりはできない、せいぜい__callで頑張るくらい
0870nobodyさん
2007/10/01(月) 15:06:37ID:???ほいほいオブジェクトのメソッドを上書きできるのってあんまり見ない気が。
メソッドの型とか一覧とかにアクセス出来るだけならたくさんあるけど。
0871nobodyさん
2007/10/01(月) 15:10:30ID:???0872nobodyさん
2007/10/01(月) 15:37:55ID:???なかなか面白いね。とくにSandboxを作るのは面白い。
言語仕様に組み込めないのはしかたないとして、
実験室レベルから成長する日は果して来るか...
こいつをバリバリ使ったRails級のキラーアプリとか、ないよね。
0873nobodyさん
2007/10/01(月) 15:52:39ID:???結局言語内仕様じゃない1拡張なんだから
その書き換えに発生するコストも高くつくだろうし
railsから参考になる部分はいっぱいあるけど
phpはphpで言語内仕様でサポートする範囲内で
使いやすいようなFW作ればいいと思う
0874nobodyさん
2007/10/01(月) 21:26:30ID:???それをRailsで使いまくっているのか?
っていうか、ここはPHPスレ。Ruby厨はカエレ!
0875nobodyさん
2007/10/01(月) 21:54:05ID:???そんな言語使う人いんの?
0876nobodyさん
2007/10/01(月) 22:07:19ID:???http://dame.dyndns.org/misc/llahp/
ちなみにPHPのおすすめされ度は最下位w
PHPとはお別れします
アデュー( ´_`)丿☆
0878nobodyさん
2007/10/02(火) 09:40:46ID:???2chで名無しにどう言われても信用できないだろ?
だからRailsのソースを読め
そしてインスタンスのmethod_missingとかを実行時に書き換えるのを見れ。
ARのアソシエーションはたいていそうやって見かけの便利メソッドを増やしてる。
あとはaliasで既存のメソッドをコピった後に同名のメソッドを追加するとか。
0879nobodyさん
2007/10/02(火) 16:09:37ID:???0880nobodyさん
2007/10/02(火) 18:07:27ID:???0881nobodyさん
2007/10/02(火) 18:11:04ID:???万事解決
0882nobodyさん
2007/10/03(水) 01:06:22ID:???> ARのアソシエーションはたいていそうやって見かけの便利メソッドを増やしてる。
> あとはaliasで既存のメソッドをコピった後に同名のメソッドを追加するとか。
うん。Rubyすごいね。PHPでも同じことできるけどねw
さっさとRubyスレに帰れよw
0884nobodyさん
2007/10/03(水) 11:00:16ID:???その程度ならインスタンスでも出来るけどね。runkitを使わなくても。php4でも。
(実際に実行した)実証コード。
<?php
class CLS extends MIXIN {
function foo() {
return 'foo';
}
}
class CLS2 {
function bar() {
return 'bar';
}
}
$a = new CLS();
print $a->foo();
//print $a->bar(); //当然エラー
print $a->includeClass('CLS2'); //includeClassメソッドはMIXINクラスに実装
print $a->bar();
$b = new CLS();
//print $b->bar(); //当然エラー
?>
※CLSはCLS2を継承していない。
で、MIXINクラスは何かって? 少し、考えてくれw
それらしい答えが出なかったら夕方にでもうpするよ。
0885nobodyさん
2007/10/03(水) 11:23:42ID:???0886nobodyさん
2007/10/03(水) 12:02:22ID:???0887nobodyさん
2007/10/03(水) 16:58:14ID:???インスタンス変数を使ってインスタンスの振舞を変更するのは
あたりまえじゃぁないすか?
そのためにインスタンス変数ってあるもんだし。
できるかできんかで言えば、C言語でオブジェクト指向で書くことはできるし、
実際そういうのは結構あるわけで。
0890nobodyさん
2007/10/03(水) 17:42:29ID:???あのさぁ。出来るか出来ないかの話を吹っかけておいてさ、
「出来るけど、(その後なんて言いたいのか知らん)」と
言い訳するのやめてくんない?
そんなこというなら、最初っから出来ないなんて大口たたかないで、
「出来るけど、(その後なんて言いたいのか知らん)」と言えという話。
でなんて言いたいのさ、出来るけど時間がかかる? コード書くのが手間?
一度書けば、それで終わりだよね。
0891884
2007/10/03(水) 17:48:34ID:???ARのリレーションで実行時に書き換えるインスタンスはクラスオブジェクトそのものだとおもうよ。
ARクラスをnewしたオブジェクトじゃなく。
だから>>884の例はARを実装してるRubyの機能をPHPで実現できた証明には弱いと思う。
なにか見えない大きな敵に向かっているようだけど
おれはこの流れで>>887が最初の発言
まぁ、喧嘩腰にならずに
なかよくやろうや。
0892887
2007/10/03(水) 17:51:24ID:???0893nobodyさん
2007/10/03(水) 18:12:43ID:???でもさ、たとえ内部の仕組みが違ったとしても、
それで出来ることと同じことが、同じ程度の手間で
PHPででも実現できるわけだよ。
出来ないと言うのなら、具体的にどんなことが出来ないのか示してほしいね。
0894nobodyさん
2007/10/03(水) 18:20:54ID:???そのクラス関数が自分自身のクラスを書き換える、とか?
でも最初はRailsはrubyのリフレクション使いまくりで読みにくいという
話だったはずだけど、いつのまに出来る出来ないという話がでたわけだろうか。
話の流れに関係ない煽りにのせられてないかい?
0895nobodyさん
2007/10/03(水) 18:37:47ID:???phpやperlならcgiでもそこそこ動くけど、rubyはfastcgiなしじゃ話にならない。
0896nobodyさん
2007/10/03(水) 18:58:11ID:???rubyが動く環境が少なすぎる。
それらの環境を切り捨てるほどの理由が見つからない。
0897nobodyさん
2007/10/03(水) 19:55:05ID:???実運用の話はまだ聞かないしね。Sunはどんだけ本気なのかしらんけど。
0898nobodyさん
2007/10/03(水) 20:50:42ID:L+I4Rl+Lもし、いろいろアドバイスしてくださる方が居れば、こちらへ宜しくお願いします。
http://php121.blog121.fc2.com/
0899nobodyさん
2007/10/03(水) 21:58:15ID:???0901nobodyさん
2007/10/03(水) 23:14:02ID:???0902nobodyさん
2007/10/04(木) 01:08:40ID:???なりすまされてRuby脂肪www
0903nobodyさん
2007/10/04(木) 01:20:43ID:???0904nobodyさん
2007/10/04(木) 06:22:51ID:???0905nobodyさん
2007/10/04(木) 12:20:13ID:???0906nobodyさん
2007/10/04(木) 17:55:29ID:???0907nobodyさん
2007/10/06(土) 13:08:07ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。