【PHP】フレームワークについて語るスレ10【総合】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/08/24(日) 21:43:37ID:???http://pc11.2ch.net/test/read.cgi/php/1202521438/
0885nobodyさん
2008/12/16(火) 22:20:21ID:???下の&は&な。
0886nobodyさん
2008/12/16(火) 23:07:56ID:???> >>869
> ndex.cgi?name=foo&passwd=baが読みやすいというのは
> プログラマー的な視点だと思う。
> しかもpasswd筒抜けやんw
> 初心者は
> hoge.com/poge/categoryId/100
> で区切られてる方がわかりやすい
name=fooなら、nameとfooが対応してるのが誰でも分かるだろう。&ってANDが文章をつなぐ単語って小学生でも知ってる。
/で区切るとどこまでがURLでどこからがクエリパラメータか分からない。
http://example.com/news/name/10で、nameがアクションクラス名なのかクエリパラメータのキー名なのか、誰にも分からない。
0887nobodyさん
2008/12/16(火) 23:59:17ID:???http://example.com/news/name/10.html というURLだったとして、
動的に出力されているのか静的に置かれているのかも誰にもわからない。
そしてそれは、いずれ静的なファイルに置き換えてもリンクを変更する必要がない。
こういう事をいうと You Aren't Gonna Need It とか言われるのかも知れないけど、あくまで一利点として。
0888nobodyさん
2008/12/17(水) 01:16:44ID:???>name=fooなら、nameとfooが対応してるのが誰でも分かるだろう
おまえがプログラマだからだろ?
初めてPCさわったとき、URLの意味が全く不明でした
URLつかってデータ飛ばしてるということ知らなかったし
だからURLは/区切りの方が単純明快でわかりやすい
わかりやすいといっても素人的観点からのわかりやすいという意味だよ
nameがわからないとかはプログラマ視点やろ
0889nobodyさん
2008/12/17(水) 01:21:40ID:???yahooとかのクエリて
どんだけパラメータはいってんねん、
これ何の変数なん?てくらい
長いで
あそこまで長いパラメータなら区切てのクエリでも
変わらんわな。ロボットも長いURL拾わんやろうし
0890nobodyさん
2008/12/17(水) 01:24:05ID:???0891nobodyさん
2008/12/17(水) 06:45:41ID:???いっこ削って上の階層にいけないようならスラッシュ区切りにする意味ないとおもうわー
0892nobodyさん
2008/12/17(水) 08:45:42ID:???携帯のブラウザなんかだと、URLが確認出来なかったりするぐらいだから。
あえてURLを見ようと思った時に、/区切りでパラメータとURLが一体になってる方がわかりやすいか、パラメータがハッキリ区別されてる方がわかりやすいか。当然、後者。
/区切りが有効なのは、昔のSEO対策ぐらいなもの。それ以外は開発者の自己満足。
0893nobodyさん
2008/12/17(水) 11:19:55ID:???0894nobodyさん
2008/12/17(水) 19:49:31ID:???0895nobodyさん
2008/12/17(水) 20:58:37ID:???URLで何を表してるか、なんじゃないかなぁ。。
そこで出てるニュースの例なら
news.php&year=2009&mon=12&day=17
よりも
news/2009/12/17
のほうが、意味あいとして分かりやすいと思うけど。
0896nobodyさん
2008/12/18(木) 01:49:52ID:???URL本体とクエリストリングは本来機能が違う物なのに、わざわざごちゃ混ぜにしてるところに問題がある。
しかも、mod_rewriteに頼らないと行けない。
画面とURLのマッピング表を参照しなければ、クエリストリングが取り出せなくなるのは、開発性の低下。
手間がかかるくせにメリットが少ないから、/区切りにするのはくだらないと思う。
0897nobodyさん
2008/12/18(木) 01:54:25ID:???そんなことはない
0898nobodyさん
2008/12/18(木) 02:07:07ID:???0899nobodyさん
2008/12/18(木) 02:09:31ID:???ヘルパを通すと一括してpathinfoにされることではないか。
0900nobodyさん
2008/12/18(木) 02:10:07ID:???例えばnucleusのfancyモードもmod_rewirte使ってない。
0901nobodyさん
2008/12/18(木) 02:16:40ID:???0902nobodyさん
2008/12/18(木) 02:16:47ID:???0903nobodyさん
2008/12/18(木) 02:20:07ID:???開発効率落としてまでやる事じゃないと思うけど、それがこだわりだって言われれば、そりゃ勝手ではあると思う。
0904nobodyさん
2008/12/18(木) 02:21:36ID:???.htaccessで済む。まぁ許可されていればの話しだが。
> 画面とURLのマッピング表を参照しなければ、クエリストリングが取り出せなくなるのは、開発性の低下。
フレームワーク使っているのなら、わざわざクエリストリングを直接弄るようなことはないだろうに。
>>901に同意。俺は/区切りの方がスッキリする。
0905nobodyさん
2008/12/18(木) 02:31:24ID:???0906nobodyさん
2008/12/18(木) 02:40:08ID:???画像加工済みであれば、ファイルが存在するからそれを返して
まだであれば、加工して保存後それを返すって感じで
0907nobodyさん
2008/12/18(木) 02:42:33ID:???例えばhttp://example.com/news/2008/12/18だって、年月日の順で引数が渡されることを把握してなければいけない。
こんなのすごくくだらない。
func(2008,12,18)ってプロトタイプよりfunc(array(year=>2008,mon=>12,day=>18))の方がメンテナンス性の高いプロトタイプだよ。
0908nobodyさん
2008/12/18(木) 02:53:47ID:???順番変更になってもルーティング弄れば全部反映されるし
ただパフォーマンス的にコストがちょっとかかるけど
0909nobodyさん
2008/12/18(木) 03:21:10ID:???いや、>>904では、「mod_rewrite必須。でなければ、Apache別設定必要」という意見に答えたまで。
> こんなのすごくくだらない。
だからくだらないかどうかは好みの問題でいいんじゃね。
メンテナンス性も大事なのはわかるが、糖衣構文と同じで慣れもあるし。
0910895
2008/12/18(木) 04:24:35ID:???うーん。。そういうのが>>877が言ってる
プログラマ的視点ってことじゃないかなぁ。。
URLは場所やリソースを表すって意味じゃ
階層的にで表現できるものは/区切りがキレイな感じがする。
year=2008&month=12&day=18
ならまだしも
month=12&year=2008&day=18
って、なんか気持ち悪くない?
RESTにちょっと興味あるからかも知れんけどw
0911nobodyさん
2008/12/18(木) 07:12:11ID:???ここでクエリクエリ言ってる人はrestを一通り勉強した上で言っているのかどうか気になる
一昔前の感覚から抜けきれないプログラマさんとしか思えない
0912nobodyさん
2008/12/18(木) 07:16:33ID:???それはRESTと全く関係ないでしょう
>>911
RESTだからpathinfoってのは違うよ。
RESTだってquerystringで基本処理することは問題ない。
なにか、910も911もRESTをちゃんと勉強してから、有意義なコメントを求む。
0913nobodyさん
2008/12/18(木) 09:15:43ID:???てか、本当に話題なんでもいいのなw
0914nobodyさん
2008/12/18(木) 10:24:50ID:???低機能だから速そうではあるけど
0915nobodyさん
2008/12/18(木) 10:25:11ID:???そうでないところはクエリ文字列をつかうべきだよね。
なんかお前ら、どっちかしか使わないみたいな二元論にハマってないか?
使い分けてナンボでしょこういうのは。
http://.../news/08/12/18?query=money
なんて分かりやすいじゃないか。
0916nobodyさん
2008/12/18(木) 10:32:53ID:???・ステートレス
・PUT、DELETEを使え
って時点で、RESTfulにこだわってたらWEB APIは作れても普通のWEBアプリは無理だろ。
大体、RESTって認証はどうするんだ?ステートレスってぶっちゃけGET以外は非現実的じゃないの?
参考にするのはいいが、どうせRESTfulにはならないんだし、URLも違う視点でいいよね。
0917nobodyさん
2008/12/18(木) 10:37:23ID:???最適化したブートストラップファイル「Yiilite」を利用時、1秒当たり最大427のクエリを処理できるという。
サーバのスペックも書かずにこの数字って
何か意味あんのか???
0918nobodyさん
2008/12/18(木) 10:53:23ID:???REST的概念にしたがってコードを書くことをRESTfulって言わないの?
RoRとかRESTful謳ってるけど?
>>917
select 1;
0919nobodyさん
2008/12/18(木) 12:00:09ID:???RoRのRESTは
PUT・DELETE → JavaScriptで疑似リンク作成(POSTだけどhiddenでメソッド種別埋め込み、サーバ側で処理)
ステートレス → 棚上げ?
フレームワークレベルで頑張ってるみたいね。
そこまでやるんならURL(URI)も頑張ってRESTfulにすればいいんじゃね?
↓こんなのもあったw
http://www.nicovideo.jp/watch/sm3823700
0921nobodyさん
2008/12/18(木) 12:11:30ID:???0922nobodyさん
2008/12/18(木) 16:01:51ID:???海外じゃじゃ12/18/2008って日付表記もメジャーだよ。12や18が何を意味するのか、コードの中を見ないと判断つかない。
0923nobodyさん
2008/12/18(木) 18:38:36ID:???2008年のなかの12月のなかの18日〜みたいに書かないと階層化になんないし
0924nobodyさん
2008/12/18(木) 20:21:57ID:???0925nobodyさん
2008/12/18(木) 21:13:55ID:aX375k2z0926nobodyさん
2008/12/18(木) 21:50:37ID:???0927nobodyさん
2008/12/18(木) 21:52:38ID:???0928nobodyさん
2008/12/18(木) 21:55:14ID:???0929nobodyさん
2008/12/18(木) 21:56:58ID:???0930nobodyさん
2008/12/18(木) 22:15:38ID:???何この糞ライブラリ
0931nobodyさん
2008/12/18(木) 23:09:41ID:???てのはいいとして、>>930
GoogleかYahooか知らんが、
PDO 不具合 (7,850) / PDO (346,000) ・・・ 2.27%
PEAR DB 不具合 (9,470) / PEAR DB (115,000) ・・・ 8.23%
PEAR MDB2 不具合 (3,440) / PEAR MDB2 (45,000) ・・・ 7.64%
JDBC 不具合 (39,700) / JDBC (161,000) ・・・ 24.65%
ODBC 不具合 (37,400) / ODBC (411,000) ・・・ 9.10%
(上記全てGoogle 日本語ページ)
むしろ優秀じゃね?そうでなくても、ただ単に普及率や話題性が数字で出てるだけじゃねーかと。
JDBCがなんか笑えるけどなww
0932nobodyさん
2008/12/19(金) 00:29:20ID:???全く関係ないヤツが殆どなんだけどな
0933nobodyさん
2008/12/19(金) 01:19:55ID:???今度PHPとSQL Serverなんだが、PDO_DBLIBの完成度とか微妙そうだ。
今からgkbrだ。
0934nobodyさん
2008/12/19(金) 12:14:17ID:???GETで飛ばした場合はクエリとはいわない
0935nobodyさん
2008/12/19(金) 12:20:32ID:???0936nobodyさん
2008/12/19(金) 12:24:34ID:???0937934
2008/12/19(金) 12:29:07ID:???0938934
2008/12/19(金) 12:52:28ID:???0940nobodyさん
2008/12/19(金) 21:43:46ID:???0941nobodyさん
2008/12/19(金) 21:47:53ID:???でもそれが設計にそれほどの影響を与えるかどうかは・・・正直そこまで気にしてらんねwとか
0942nobodyさん
2008/12/20(土) 03:11:01ID:???0943nobodyさん
2008/12/20(土) 03:25:26ID:???効率よさそうな気はするが。
list.php?q=hoge&page=2&cate=3とかなってるより、
list/cate/3?page=2&q=hoge の方が楽そうだなーとかは感じる。
実際はどうかわからんけどな。
0944nobodyさん
2008/12/20(土) 03:45:04ID:???0945nobodyさん
2008/12/20(土) 04:23:39ID:???0946nobodyさん
2008/12/20(土) 11:09:04ID:???気がするではなく自明だろとか書くと、仮に大嘘でもそのまま飲み込む奴は出てくるんだけどな
書き方としてはその方が2ch向きかな
0948nobodyさん
2008/12/20(土) 18:52:04ID:VXNsKNQ00950nobodyさん
2008/12/20(土) 23:49:25ID:???0951nobodyさん
2008/12/21(日) 00:10:34ID:???Google Analyticsでは対応できなくなったときだな。
アクセス数が少ないやつがアクセス解析を作ると
一人ひとりのアクセスしたページの履歴を見れるとか
わけのわからない機能を作りそうw
0952nobodyさん
2008/12/21(日) 00:20:56ID:???リファラー情報をDBに保存して集計していますか?
0953nobodyさん
2008/12/21(日) 00:28:37ID:???しかも頑張らないと消せないぜ。
0954nobodyさん
2008/12/21(日) 05:35:57ID:???昔から永久保存してるよ
0955nobodyさん
2008/12/21(日) 22:53:57ID:V1c8MsfO0956nobodyさん
2008/12/21(日) 23:34:59ID:???コードが全てを物語ってるじゃないか。
相手にする価値無いだろ。
0958nobodyさん
2008/12/22(月) 02:31:00ID:???0959nobodyさん
2008/12/22(月) 06:22:15ID:UnYE/VzJhttp://blog.katsuma.tv/2008/12/inner_join_on_cakephp.html
インナージョインとレフトジョインて別物だし、
簡単にテレコにできるもんじゃないよね?
これってどういうことなん?
0960nobodyさん
2008/12/22(月) 06:49:37ID:???今作成してるサイト、テーブルいくつもレフトジョインしてるんだが・・・
0961nobodyさん
2008/12/22(月) 08:10:23ID:???0962nobodyさん
2008/12/22(月) 08:19:55ID:???それより、CakeのモデルでINNERにできるところをLEFTにしてるとしたら
(たぶんそういうことなんだろうけど)ちょいとお粗末すぎる希ガス
0963nobodyさん
2008/12/22(月) 08:23:10ID:???接続対象が0にならない場合だけでしょ
タグっぽいの駄目だし使いどころなさそう
0964nobodyさん
2008/12/22(月) 08:29:38ID:???LEFTじゃなきゃだめなところをINNERにして動作に異常がないわけはないんで、
普通にINNERでよいところをLEFTにしてるかどうかが問題なんじゃない?
0965nobodyさん
2008/12/22(月) 08:37:43ID:???0966nobodyさん
2008/12/22(月) 10:10:57ID:???NULLが出来るクエリなんてキモチワリーってことなんじゃない?
ちゃんと設計してあればLEFT JOINなんてそんな使わないよ。
0967nobodyさん
2008/12/22(月) 10:33:27ID:???1日で3Gくらいのログファイルを想定してた
ディレクトリ毎にアクセス状況を表示出来るので、そちらのがディレクション側にも理解し易いかなとか
GETで渡ったパラメータも項目別に出るけど、ページ検索だか訳判らん表現に
まぁ機能以外のつまらん理由で仕様が決まる事もあるねー
以上の話題にならんかったな
0968nobodyさん
2008/12/22(月) 10:38:37ID:???LEFT JOINの方が遅いとか、その辺の知識が弱くて困ってるんだけど、
その辺を学ぶのにいい情報源ないですか?
CRUDなSQLは一通りかけるけど、JOINなんかは解説サイトを鵜呑みにして、
とりあえず出来てるレベル。
もうちょっとしっかりとした知識を身につけたいところ。
0969nobodyさん
2008/12/22(月) 10:45:12ID:???LEFT JOINの方が遅いという一般的な事象については、RDBMSの内部動作の基本を
理解していれば、自明。RDBMSの基礎理論を扱ったドキュメントになら書いてあるでしょう。
RDBMSのドキュメントに結合の最適化やINDEXの使われ方、処理フローに
ついて書いてあることもある。そこは運だな。
0972nobodyさん
2008/12/22(月) 11:34:07ID:???ttp://www.inter-office.co.jp/contents/157/
たとえば、ここにベンチ出てるんだけど、前のアイテムでLEFT JOINして性能が1/3になってるという話。
ただ、これは一般的に1/3になるというのではなく、LEFT JOINするときにどのくらいNullになるレコード
があるかによって速度は全然違うから、完全な比較はできない。
そもそも、使い路の違うものを速度比較っていう考え方自体がないんだよね。
0973nobodyさん
2008/12/22(月) 11:44:52ID:???0974nobodyさん
2008/12/22(月) 12:01:34ID:???あんまり関係ない希ガス
0976nobodyさん
2008/12/22(月) 12:13:33ID:???0977nobodyさん
2008/12/22(月) 16:22:33ID:???なんでもかんでもコンテンツはキャッシュにぶちこんで、
検索が必要な場合は専用のインデックスにでも(RDBMSじゃなく、いやRDBMSでもいいけd)放りこめ!って
やりかたがイマドキはアレな気がする。
チューンしたSQLは一発書いたら使いまわしのできないコードだし、
コンテンツキャッシュがちゃんとしてれば大方はそっちの方が数字は速いし、
フレームワークなんかにも組み込みやすいし、なのでまぁそういう流れなんだと思う。
大規模サイトっつってもいろいろあるだろうけどさ。
0978nobodyさん
2008/12/22(月) 16:30:59ID:???アレってなに
0979nobodyさん
2008/12/22(月) 22:30:57ID:???0980nobodyさん
2008/12/22(月) 22:54:57ID:???0981nobodyさん
2008/12/22(月) 23:01:35ID:???> 大規模なウェブサイトは極力ジョイン使うなってよく紹介されてるだろ。ジョインそのものの話。
知識では知っていたが、最近実感した。
JOINにかかる速度というより、
一般的にSQLを実行したとき、条件やソート処理も一緒に行う。
条件やソートにインデックスがうまく使われれば速いが、
そうでない場合大幅に速度が遅くなる。
インデックスはRDMSによるが、一つのSQLで一回しか使われなかったりと
使われない場合がある。
JOINが絡むと結果的に複雑なSQLになり、インデックスをうまく使うのが難しい。
だからJOINを使った複雑なSQLを書くのではなくインデックスを使った
単純なSQLを複数回発行するほうが良い。
0982nobodyさん
2008/12/22(月) 23:24:29ID:???1対多とか多対多を一つのテーブルでやるなんて無理ぽ
0983nobodyさん
2008/12/22(月) 23:27:21ID:???>検索が必要な場合は専用のインデックスにでも
そうそう。Luceneみたいにインデックスに特化させたシステムを別に走らせて
DBからはデータだけを取ってくる。ページはキャッシュしとく。
0984nobodyさん
2008/12/23(火) 00:09:01ID:???UserとProfileが一対一の関係で
しかも、
Userレコードに対応するProfileレコードが必ず存在する
という前提でないとINNER JOINは使えないと思う。
Userテーブルにたくさんデータがあって、Profileテーブルが空の場合、
$this->User->find('all');
としても、データが返ってこないことになる。
この場合CakePHPだとNULLになるのかな。
0985nobodyさん
2008/12/23(火) 00:10:53ID:???といって、インデックス?のシステムを利用してどう表現するのかよくわからない
うー頭が悪い
テーブル[A]: 1:太郎 2:花子 3:ジョニー
テーブル[B]: a:バナナ b:メロン c:マンゴー
テーブル[C]: 1-a, 1-b, 2-b, 2-c, 3-a, 3-c
こうすりゃJOINなんか使わなくていいんだぜ!ってのがあるのならだれか教えて下さい。
それとも、こんなのなら迷わずINNER JOINでいいのかな・・・
件数が少なけりゃ、例えばメロンが好きな人!ってので、テーブルCから名前キーを
取得して、テーブルAから IN (1, 2) とかでセレクトできるけど・・・そういうことするんでしょうか?
てか、PHPかDBの初心者スレいった方がいいかな;_;
レス数が950を超えています。1000を超えると書き込みができなくなります。