1 名前:nobodyさん [2008/03/14(金) 15:16:00 ID:HF9x5ODX] www.cakephp.org/ 10分で作るCakePHPアプリ for Windows p4life.jp/cake/ マニュアル日本語化 www.cakephp.jp/doc/ 日本語フォーラム cakephp.jp/modules/newbb/ あとこのへんとか(初心者向けTIPS) www.avatarfinancial.com/pages/cake/ CakePHP入門リンク集 ttp://pub.studio15.jp/2007/11/13/cakephp-links/ 【PHP】フレームワーク CakePHP 2ホール目 pc11.2ch.net/test/read.cgi/php/1194976228/ 【PHP】フレームワーク CakePHP pc11.2ch.net/test/read.cgi/php/1163850802/
2 名前:nobodyさん mailto:sage [2008/03/14(金) 15:46:16 ID:???] >1 乙。
3 名前:nobodyさん mailto:sage [2008/03/14(金) 18:11:15 ID:???] アソシエーションしたモデルをfindAllなどで持ってくると、 いろんな構造のデータになるけど、どんなパターンがあるのかな? ちょっと見にくいだろうけど、ありそうなのを組み合わせてみた。 この結果から、配列.Model.・・・、Model.Model.・・・、Model.field、Model.配列.field の パターンに大別できると思っている。 Model.配列.配列.field なんてのは無い。 そしてキーの先頭が大文字ならモデル名、数値なら配列、 先頭が小文字ならフィールド名と判別できると思っている。 Model::aliasとかあまり使ってないんだけど、これであってる? 何の為にこれを調べているかというと、アソシエーションでごっそり取ってきた 全データの中で、特定モデルの特定の型(たとえば日付)のフィールドだけ変換したいっていう場合に array_walk_recursiveみたいなのがあればやりやすくない?という話 その下調べ
4 名前:3 mailto:sage [2008/03/14(金) 18:11:43 ID:???] array( 'Model1' => array( 'model1_field1' => '値1', 'model1_field2' => '値2', ), 'Model2' => array( '0' => array( 'model2_field1' => '値1', 'model2_field2' => '値2', ), '1' => array( 'model2_field1' => '値1', 'model2_field2' => '値2', ), ), 'Model3' => array( '0' => array( 'model3_field1' => '値1', 'model3_field2' => '値2', 'Model4' => array( 'model4_field1' => '値1', 'model4_field2' => '値2', ) ), '1' => array( 'model3_field1' => '値1', 'model3_field2' => '値2', 'Model4' => array( 'model4_field1' => '値1', 'model4_field2' => '値2', ) ), ), ) これに加えて一番上が配列で始まる事もある。
5 名前:nobodyさん mailto:sage [2008/03/15(土) 03:10:39 ID:???] こういう学習コストを考慮しても、ありがたみがあるの?
6 名前:nobodyさん mailto:sage [2008/03/15(土) 04:05:03 ID:???] 学習コスト < 自分で考え設計し開発するコスト 長くやっている人は、すでに自分で考え設計し開発しているから、 学習コストのほうが高いように錯覚するかもしれないが 本来は、自分でやるほうがコストは大きい。
7 名前:nobodyさん mailto:sage [2008/03/15(土) 04:29:13 ID:???] 仕様書に機能追加や修正するだけの作業で1日が費やされた 最終的にこれをコードで処理してやらなければならないんだが どんだけ時間かかるんだろ怖いよ
8 名前:nobodyさん mailto:sage [2008/03/15(土) 04:31:23 ID:???] 貧乏暇無しや、この蟻地獄からなかなか抜け出せへん 気晴らしにコーラでも買いに行く
9 名前:nobodyさん [2008/03/15(土) 08:17:47 ID:4Bb0W2wl] で、結局どれほどの負荷がかかるとメモリ食い潰す訳? アクセス数と処理内容は?
10 名前:nobodyさん mailto:sage [2008/03/15(土) 09:48:29 ID:???] >>9 うるさいなぁ。 CakePHPはメモリ不足で落ちる。何をやっても落ちる。 それだけだよ。ソースはぐぐれ。
11 名前:nobodyさん mailto:sage [2008/03/15(土) 10:04:27 ID:???] >>9 アクセス数とかじゃなくて、モデルのオブジェクトにしこたま データを溜め込んだりする仕様になってるから、データ量が増えて 閾値をこえると落ちるって感じかなぁ。 初めはそんなこと考えなくてもいいと思うけど・・・
12 名前:nobodyさん mailto:sage [2008/03/15(土) 12:47:39 ID:???] メモリの8Mリミットオーバーのエラーを見たのは ぶっちゃけCakePHPがはじめてw
13 名前:nobodyさん mailto:sage [2008/03/15(土) 12:49:38 ID:???] こんな高負荷なものは自社で運営は間違ってもしない やるならCIを負荷を考慮して拡張していく
14 名前:nobodyさん mailto:sage [2008/03/15(土) 12:53:15 ID:???] >>11 アソシエーションしまくるとやばいやんw
15 名前:nobodyさん mailto:sage [2008/03/15(土) 12:57:52 ID:???] なんでこんな不完全なフレームワーク流行してんだよ。 流行て何でも肯定されちまうから怖いよな。 流行についていかねば、食えないから仕方ないけどな
16 名前:nobodyさん mailto:sage [2008/03/15(土) 14:20:17 ID:???] で、結局、どういうコードを書けば落ちるんだよ。 その具体的がまったくないよね。 これじゃウソだと思われるのが当然だし、 仕方が無い話だよね。
17 名前:nobodyさん mailto:sage [2008/03/15(土) 14:21:14 ID:???] >>15 > なんでこんな不完全なフレームワーク流行してんだよ。 世の中に完全なフレームワークは無い。 もしあったとしたら、そのフレームワークは バージョンアップしない。
18 名前:nobodyさん mailto:sage [2008/03/15(土) 14:25:44 ID:???] なんでメモリ不足で落ちるということを 信じてもらえないのだろう? 俺、何もしてないのに・・・
19 名前:nobodyさん mailto:sage [2008/03/15(土) 14:47:28 ID:???] 笑い殺すきかw 何もしていないから信じてもらえないんだろw メモリ不足で落ちるということを証明する義務があるのに、 それを証明しない、何もしないから信じてもらえない。
20 名前:nobodyさん mailto:sage [2008/03/15(土) 15:39:59 ID:???] >>19 他人の作ったプログラム内でHello word書いて落ちるんだから そう簡単には証明できねーよ、素人発言にも度が過ぎる
21 名前:nobodyさん mailto:sage [2008/03/15(土) 15:44:29 ID:???] メモリオーバーのエラー文が出てるんだから 証明てエラー画面のキャプチャー画像とれってことか?w
22 名前:nobodyさん mailto:sage [2008/03/15(土) 15:47:01 ID:???] 20に同意 19はPHPのことあまり知らなさそうな感じが・・・
23 名前:nobodyさん mailto:sage [2008/03/15(土) 15:48:52 ID:???] たしかにwの数と頭の悪さは比例するからな
24 名前:nobodyさん mailto:sage [2008/03/15(土) 16:33:57 ID:???] 自演ワロタw >>20 そう簡単に証明できない? なぜ? 簡単にメモリ不足になるんじゃなかったのか? 自分で言っていて矛盾に気づかない?
25 名前:nobodyさん mailto:sage [2008/03/15(土) 16:43:49 ID:???] >>21 証明とは、他人がやっても再現できるだけの コードや環境設定に決まっている。 Hello worldぐらいなら君でも掲示板にもかけるはずだが?
26 名前:nobodyさん mailto:sage [2008/03/15(土) 17:14:17 ID:???] とりあえずphpinfo()と問題のコントローラだけ貼ってみ
27 名前:nobodyさん mailto:sage [2008/03/15(土) 17:23:01 ID:???] >>25 常識の観点がずれてる
28 名前:nobodyさん mailto:sage [2008/03/15(土) 17:24:29 ID:???] >>24 激しく意味不明なんですが。。。
29 名前:nobodyさん mailto:sage [2008/03/15(土) 17:26:40 ID:???] 「落ちる」を「俺は空を飛べる」に置き換えてみるとどうだろう。
30 名前:nobodyさん mailto:sage [2008/03/15(土) 17:28:21 ID:???] >>25 証明とか言葉の使い方がおかしい 技術者の使う言葉じゃねーな
31 名前:nobodyさん mailto:sage [2008/03/15(土) 17:29:55 ID:???] 小学生がよく証明しろとか証拠みせろとかよくいうけど そのレベルだろうな
32 名前:nobodyさん mailto:sage [2008/03/15(土) 17:31:24 ID:???] >>29 どんななぞなぞですか?
33 名前:nobodyさん mailto:sage [2008/03/15(土) 17:32:16 ID:???] 他人に作ってくれと言われるサイトだと、すんなりできあがるのに。 自分のサイトを作ろうと思うとこだわりすぎてなかなか開発が進まない。 大工さんは自分の家を建てようとするとこだわりすぎて会社がつぶれるってこともあるらしいけど。 わかりますかね?この気持ち。
34 名前:nobodyさん mailto:sage [2008/03/15(土) 17:33:07 ID:???] 遠まわし表現すぎてコミュニケーションレベルが激しく低いんですが
35 名前:nobodyさん mailto:sage [2008/03/15(土) 17:39:44 ID:???] なんかめんどくさいから別の話して↓
36 名前:nobodyさん mailto:sage [2008/03/15(土) 17:44:25 ID:???] インターバル2分以内わろた
37 名前:nobodyさん mailto:sage [2008/03/15(土) 18:11:15 ID:???] PHP4でメモリ8MB(デフォルト)で作っているけど、 メモリ不足になったこと無いんだが? 作り方が悪いんじゃね?
38 名前:nobodyさん mailto:sage [2008/03/15(土) 18:17:57 ID:???] すごいなこれw で、今は書き込みすぎですサルさん とか言うのが出て書き込めない? 27 :nobodyさん:2008/03/15(土) 17:23:01 ID:??? 28 :nobodyさん:2008/03/15(土) 17:24:29 ID:??? 29 :nobodyさん:2008/03/15(土) 17:26:40 ID:??? 30 :nobodyさん:2008/03/15(土) 17:28:21 ID:??? 31 :nobodyさん:2008/03/15(土) 17:29:55 ID:??? 32 :nobodyさん:2008/03/15(土) 17:31:24 ID:??? 33 :nobodyさん:2008/03/15(土) 17:32:16 ID:??? 34 :nobodyさん:2008/03/15(土) 17:33:07 ID:???
39 名前:nobodyさん mailto:sage [2008/03/15(土) 19:16:04 ID:???] そんな糞フレームワークなら、公開すらされなそうなもんだが、なんで世に出てるの? 開発元は認識してないバグなの?
40 名前:nobodyさん mailto:sage [2008/03/15(土) 19:21:27 ID:???] symfonyでよくメモリ不足に陥ってこのページ見つけた。 www.sooey.com/journal/2007/04/10/641/ memory_get_peak_usageでメモリ使用料を調べられるが、 それでCakePHPを調べたら、使用量は4M程度だったよ。 symfonyよりは少ないね。
41 名前:nobodyさん mailto:sage [2008/03/15(土) 19:59:52 ID:???] セットアップして空のアクション実行してview(+layout)を表示する。 php 5.2.5 cake 467.5KB, symfony 674.6KB フレームワークとしてはデフォルトでこんなもんなんだから メモリ不足というのはアプリケーションの実装の問題だと思うのだが。 DB周りとか、大抵使われるアドオン・プラグインとかも含めないとなんとも言えないってのはあるけど。
42 名前:nobodyさん mailto:sage [2008/03/15(土) 21:05:39 ID:???] フレームワークが糞なんじゃなくてメモリ不足云々言ってるやつが糞 メモリ不足とか言ってる香具師はどんな糞コード書いてるの?w
43 名前:nobodyさん mailto:sage [2008/03/15(土) 21:06:39 ID:???] >>41 その数字はデバッグ出してんの?説明不足すぎやで
44 名前:nobodyさん mailto:sage [2008/03/15(土) 21:11:12 ID:???] 他人の書いたコード利用するくらいだから 42も含めて、みんな糞コードくレベルやろ CakePHPで糞コード書くとメモリ不足になる確率は高いわな
45 名前:nobodyさん mailto:sage [2008/03/15(土) 21:13:30 ID:???] どう考えてもフレームワークが糞としか考えられん 相当に意識して糞コード書かないと8Mオーバーはむずいよ
46 名前:nobodyさん mailto:sage [2008/03/15(土) 21:16:24 ID:???] メモリ不足ならんやつはレンタルサーバーでデフォでメモリ無制限なってんの気づけよw
47 名前:nobodyさん mailto:sage [2008/03/15(土) 21:17:54 ID:???] そんなシビアに実装しないとメモリ不足になるんか ろくでもないフレームワークやな
48 名前:nobodyさん mailto:sage [2008/03/15(土) 21:19:20 ID:???] 初心者が無限ループ書きまくっても8M越えはむずいで
49 名前:nobodyさん mailto:sage [2008/03/15(土) 21:24:48 ID:???] PHP5あたりからメモリ食うような仕様になってんか てことはPHP4つかってるやつだなメモリ不足おきんのは
50 名前:nobodyさん mailto:sage [2008/03/15(土) 21:26:39 ID:???] PHP 5.2.1ではさらにリミットが128Mまで引き上げらたんだってよ! リミット8MのままPHP 5.2.1使えばメモリ不足になる可能性は高いわな
51 名前:nobodyさん mailto:sage [2008/03/15(土) 21:34:35 ID:???] >>45 > 相当に意識して糞コード書かないと8Mオーバーはむずいよ 簡単だよ。 たとえば、8Mを超えるようなファイルを受信したり、 また出力すればいいだけ。 っていうか、もうすでに8Mにはならないという結論がでている 話なんかどうでもいいんだがね。
52 名前:nobodyさん mailto:sage [2008/03/15(土) 21:36:48 ID:???] >>50 それが答えだろう。PHP5でメモリ使用量が大幅に増えて それに伴って、デフォルトのリミット値も増えているのに、 PHP4からアップグレードしたとかでPHP4の設定のまま使っている奴が メモリ不足と出ているだけ。 フレームワークではなく、PHPの問題。
53 名前:nobodyさん mailto:sage [2008/03/15(土) 21:37:19 ID:???] > PHPの問題 ただしくは、PHPとそれを使っているユーザーの問題。
54 名前:nobodyさん mailto:sage [2008/03/15(土) 21:38:08 ID:???] どうやら頭の中のメモリが不足してるヴォケが多いようだなw
55 名前:nobodyさん mailto:sage [2008/03/15(土) 21:38:50 ID:???] 43 :nobodyさん:2008/03/15(土) 21:06:39 ID:??? 44 :nobodyさん:2008/03/15(土) 21:11:12 ID:??? 45 :nobodyさん:2008/03/15(土) 21:13:30 ID:??? 46 :nobodyさん:2008/03/15(土) 21:16:24 ID:??? 47 :nobodyさん:2008/03/15(土) 21:17:54 ID:??? 48 :nobodyさん:2008/03/15(土) 21:19:20 ID:??? 49 :nobodyさん:2008/03/15(土) 21:24:48 ID:??? 50 :nobodyさん:2008/03/15(土) 21:26:39 ID:??? またこいつかw
56 名前:nobodyさん mailto:sage [2008/03/15(土) 21:40:39 ID:???] あはは、どういうコードでメモリ不足と出るということを 記憶する脳のメモリもないということか。うまいなぁ。 メモリ不足にるというのなら、そのコードを覚えてここで書けよw
57 名前:nobodyさん mailto:sage [2008/03/15(土) 21:41:32 ID:???] メモリ使用量で言えばsymfonyのほうが圧倒的に多い そしてsymfonyは処理速度も最悪
58 名前:nobodyさん mailto:sage [2008/03/15(土) 21:44:17 ID:???] >>48 > 初心者が無限ループ書きまくっても8M越えはむずいで お前はプログラミング素人だな。 そもそも無限ループじゃメモリ使用量は増えないだろ。 ループの中にメモリを消費していくコードが含まれていれば メモリ使用量は増えるが、それだと難しいという話にはならない。 時間がたてばいずれ8Mを超える。
59 名前:nobodyさん mailto:sage [2008/03/15(土) 21:45:25 ID:???] >>57 symfonyはCakePHPだと配列のデータが オブジェクトになっているからね。 それは仕方が無い話。
60 名前:nobodyさん mailto:sage [2008/03/15(土) 21:52:56 ID:???] >>54 のカキコが的を突いていてオモロス
61 名前:nobodyさん [2008/03/15(土) 21:58:18 ID:???] 脳内メモリが不足している人におすすめのフレームワーク pc11.2ch.net/test/read.cgi/php/1122105465/
62 名前:nobodyさん mailto:sage [2008/03/15(土) 22:01:51 ID:???] >>59 オブジェクトの方がメモリ食わんよ
63 名前:nobodyさん mailto:sage [2008/03/15(土) 22:02:57 ID:???] アホしか書き込みせんから、時間の無駄じゃこのスレ
64 名前:nobodyさん mailto:sage [2008/03/15(土) 22:03:54 ID:???] フレームワークが糞だから住人も糞が集まる これは仕方のないこと
65 名前:nobodyさん mailto:sage [2008/03/15(土) 22:07:39 ID:???] CakePHPは使ってるやつは 脳内のメモリが不足してるという結論になりました
66 名前:nobodyさん mailto:sage [2008/03/15(土) 22:10:56 ID:???] こんなメモリ食うフレームワークを採用してる有名サイトあるの?www どうでもいいクライアント用のフレームワークだろwww
67 名前:nobodyさん mailto:sage [2008/03/15(土) 22:12:26 ID:???] >>65 CakePHPは使ってるやつは × CakePHPを使ってるやつは △ CakePHPを糞と言ってるやつは ○ 脳内メモリが不足してくると日本語もおかしくなっているという法則
68 名前:nobodyさん mailto:sage [2008/03/15(土) 22:12:32 ID:???] CakePHPて小規模フレームワークのくせに なんでsymfonyとメモリ不足量の競い合いしてんだよw
69 名前:nobodyさん mailto:sage [2008/03/15(土) 22:15:21 ID:???] >>66 つ p://cakephp.seesaa.net/article/30805902.html
70 名前:nobodyさん mailto:sage [2008/03/15(土) 22:16:09 ID:???] どうでもいいクライアントには丁度いいフレームワークだよ
71 名前:nobodyさん mailto:sage [2008/03/15(土) 22:22:04 ID:???] すぐメモリ不足おこすのはCakePHPの問題だ どんな糞コード書いてても CakePHP以外でこんなこと今までおきなかった
72 名前:nobodyさん mailto:sage [2008/03/15(土) 22:26:10 ID:???] 脳内メモリが不足してる香具師は何でも他人の所為にする事しか出来ないようだな >>71 じゃあそのCakePHPの場合だけ落ちるっていう糞コードをさっさと書けよボンクラ
73 名前:nobodyさん mailto:sage [2008/03/15(土) 22:31:54 ID:???] どんだけ最低最悪な糞コード書いてても symfony,CI,mojaviは落ちなかったけど CakePHPだけはどんなコード書いてもすぐ落ちる 最悪なフレームワークです
74 名前:nobodyさん mailto:sage [2008/03/15(土) 22:34:03 ID:???] >>73 脳内メモリが著しく枯渇してるモマエにはすぐ上に書いてある文章も読めないのか?(藁
75 名前:nobodyさん mailto:sage [2008/03/15(土) 22:35:35 ID:???] CakePHPの採用サイトみたけど有名なとこはないな 信用の無いフレームワークですね
76 名前:nobodyさん mailto:sage [2008/03/15(土) 22:37:25 ID:???] ひとりごとにやけにかみつくメモリ不足の方がおられますね
77 名前:nobodyさん mailto:sage [2008/03/15(土) 22:39:22 ID:???] CakePHPだと小規模向けのサイトじゃないと無理か だったらCI使ってた方がいいやん 何なのCakePHPの存在意義て?
78 名前:nobodyさん mailto:sage [2008/03/15(土) 23:01:27 ID:???] CI使ってみたいんだけどどんな感じ?
79 名前:nobodyさん mailto:sage [2008/03/15(土) 23:10:48 ID:???] >>76 全世界の人間に見えるように書いてるもんに独り言も糞もあるかよw さっさとCakePHPの場合だけ落ちるコードを書いてみろや
80 名前:nobodyさん mailto:sage [2008/03/16(日) 00:28:57 ID:???] >>78 激しく糞。 つーか、ここでCIのことを語りだすやつは、 CakePHPがメモリ不足になりやすいとデマ流している奴だから。
81 名前:nobodyさん mailto:sage [2008/03/16(日) 00:29:46 ID:???] CI厨、CakePHPに激しく嫉妬(笑)
82 名前:nobodyさん mailto:sage [2008/03/16(日) 00:33:53 ID:???] CakePHPのメモリ不足をまだデマだと思ってるやつがいるなんて信じられん
83 名前:nobodyさん mailto:sage [2008/03/16(日) 00:37:26 ID:???] デマという言葉がいやなら、 メモリ不足になるというコードがでていないのに、 メモリ不足になるというコードが存在すると主張している と言い換えてもいいけど? こっちなら間違ってないでしょ?
84 名前:nobodyさん mailto:sage [2008/03/16(日) 00:41:22 ID:???] CI厨 必死(笑)
85 名前:nobodyさん mailto:sage [2008/03/16(日) 00:42:48 ID:???] >>73 > どんだけ最低最悪な糞コード書いてても > symfony,CI,mojaviは落ちなかったけど 常識で考えて、ありえない話。 メモリ制限8Mで10Mのデータをメモリに読み込むような プログラムを書けば絶対落ちる。 マジレスしたらだめなのか?w
86 名前:nobodyさん mailto:sage [2008/03/16(日) 00:49:54 ID:???] 結論 Q : cakephp メモリ不足になるんですが ・他のフレームワークを使う ・フレームワークを使わずコーディングする ・ticket 投げてメモリを喰わないように cakephp を作ってもらう どれかを選らんで下さい。
87 名前:nobodyさん mailto:sage [2008/03/16(日) 00:52:50 ID:???] >>86 必死wwwwwwwww
88 名前:nobodyさん mailto:sage [2008/03/16(日) 00:54:42 ID:???] ticketを投げようにも、再現コードがでていないから 投げようがないな。デマといわれて終わるだけだ。 悔しいなぁ。 なんで、なんでメモリ不足になるという 証拠がないんだよ! ありえない。 これじゃCakePHPを叩けない!
89 名前:nobodyさん mailto:sage [2008/03/16(日) 00:58:35 ID:???] ticketだしますから、 メモリ不足になるという 再現コードお願いします。 それがないと信用してもらえません><
90 名前:nobodyさん mailto:sage [2008/03/16(日) 01:10:03 ID:???] なんか必死に書き込んでるのがいるwww
91 名前:nobodyさん mailto:sage [2008/03/16(日) 01:11:43 ID:???] 再現コード厨きてんねw
92 名前:nobodyさん mailto:sage [2008/03/16(日) 01:15:35 ID:???] はやく再現コードかきこんでねw
93 名前:nobodyさん mailto:sage [2008/03/16(日) 01:15:51 ID:???] hello wordでもメモリ不足でおちる CakePHPはそういうフレームワーク
94 名前:nobodyさん mailto:sage [2008/03/16(日) 01:17:05 ID:???] hello worldって何かしってるのかな? 知っていれば落ちるはずがないことがわかるはずなんだが。 それがわからないってことは馬鹿ということだよ。
95 名前:nobodyさん mailto:sage [2008/03/16(日) 01:18:12 ID:???] 大きすぎるうそは逆効果だと思うんだが(笑)
96 名前:nobodyさん mailto:sage [2008/03/16(日) 01:18:14 ID:???] echo"92の必死ぶりがイタイデス"; これでメモリ不足で落ちます CakePHPはこんなフレームワークです 使うのはやめましょう。クライアントがかわいそうです
97 名前:nobodyさん mailto:sage [2008/03/16(日) 01:19:44 ID:???] echo"92の必死ぶりがイタイデス"; ためしたけど落ちなかったよ。
98 名前:nobodyさん mailto:sage [2008/03/16(日) 01:20:34 ID:???] だから何も書いてなくてもデバッグ出力すると落ちるんだよボケ!!
99 名前:nobodyさん mailto:sage [2008/03/16(日) 01:20:46 ID:???] ためしたのかよw やる前から落ちないってわかるwww
100 名前:nobodyさん mailto:sage [2008/03/16(日) 01:21:56 ID:???] レンタルサーバーで落ちるわけねーだろうがよ
101 名前:nobodyさん mailto:sage [2008/03/16(日) 01:22:13 ID:???] 何も書かないで、どうやってデバッグ出力なんかするの??? っていうかデバッグ出力するってどういうこと? 他のフレームワークと勘違いしてね? きっとそのフレームワークだよ。メモリ不足で落ちるというのは。
102 名前:nobodyさん mailto:sage [2008/03/16(日) 01:22:44 ID:???] 落ちないように業者が設定してくれてんの、わからんの?
103 名前:nobodyさん [2008/03/16(日) 01:24:23 ID:EXDzIJ8M] あー。なんか面白いことになっているな。 メモリ不足で落ちるとはじめに言ったのは俺なんだが、 あれ勘違い。俺のバグだった。 で、それに便乗して落ちる落ちる言っている奴がいるのか?
104 名前:nobodyさん mailto:sage [2008/03/16(日) 01:24:44 ID:???] だからCakePHPは使いものにならないんだよ
105 名前:nobodyさん mailto:sage [2008/03/16(日) 01:25:25 ID:???] ?
106 名前:nobodyさん mailto:sage [2008/03/16(日) 01:26:34 ID:???] メモリ不足でよく落ちるから使いものにならんてこと
107 名前:nobodyさん mailto:sage [2008/03/16(日) 01:27:00 ID:???] 落ちないよ?
108 名前:nobodyさん mailto:sage [2008/03/16(日) 01:27:46 ID:???] 落ちなければこんなとこ書き込めねーよ
109 名前:nobodyさん mailto:sage [2008/03/16(日) 01:28:08 ID:???] 落ちてないけど、書き込めるよ?
110 名前:nobodyさん mailto:sage [2008/03/16(日) 01:28:27 ID:???] おまえが落ちなくても俺は落ちてんだよ
111 名前:nobodyさん mailto:sage [2008/03/16(日) 01:28:49 ID:???] お前も落ちてないよ
112 名前:nobodyさん mailto:sage [2008/03/16(日) 01:29:14 ID:???] なんでこんなに糞なんだよ、メモリやけに使いやがって
113 名前:nobodyさん mailto:sage [2008/03/16(日) 01:29:31 ID:???] 糞じゃないよ。メモリも使わないよ。
114 名前:nobodyさん mailto:sage [2008/03/16(日) 01:30:21 ID:???] hello word書いてメモリオーバーになったのは CakePHPがはじめてだよ
115 名前:nobodyさん mailto:sage [2008/03/16(日) 01:30:42 ID:???] なんでこんなことになるん?
116 名前:nobodyさん mailto:sage [2008/03/16(日) 01:30:53 ID:???] お前、メモリオーバーになってないよ。
117 名前:nobodyさん mailto:sage [2008/03/16(日) 01:31:19 ID:???] >>115 CI厨のデマだからという結論らしいです。
118 名前:nobodyさん mailto:sage [2008/03/16(日) 01:33:07 ID:???] CakePHP重いと思わんの?サクサクしてる?w
119 名前:nobodyさん mailto:sage [2008/03/16(日) 01:33:16 ID:???] これで落ちなかったら俺の負けでいいよ。 class TestController extends AppController { var $name = 'Test'; function index() { echo 'Hello World'; } }
120 名前:nobodyさん [2008/03/16(日) 01:33:58 ID:EXDzIJ8M] >>119 マジ落ちたwwww
121 名前:nobodyさん mailto:sage [2008/03/16(日) 01:34:19 ID:???] 俺も落ちたね。
122 名前:nobodyさん mailto:sage [2008/03/16(日) 01:34:23 ID:???] 落ちなかった
123 名前:nobodyさん mailto:sage [2008/03/16(日) 01:35:06 ID:???] 墓穴? 103 名前:nobodyさん[] 投稿日:2008/03/16(日) 01:24:23 ID:EXDzIJ8M あー。なんか面白いことになっているな。 メモリ不足で落ちるとはじめに言ったのは俺なんだが、 あれ勘違い。俺のバグだった。 で、それに便乗して落ちる落ちる言っている奴がいるのか? 120 名前:nobodyさん[] 投稿日:2008/03/16(日) 01:33:58 ID:EXDzIJ8M >>119 マジ落ちたwwww
124 名前:nobodyさん mailto:sage [2008/03/16(日) 01:36:23 ID:???] >>119 メモリ1GBのLinuxにPHP4.5を入れているが、落ちたよ。
125 名前:nobodyさん mailto:sage [2008/03/16(日) 01:36:34 ID:???] とにかくhello wordだけでメモリ不足で落ちるのはホントだからな
126 名前:nobodyさん mailto:sage [2008/03/16(日) 01:36:55 ID:???] 絶対信じろよ
127 名前:nobodyさん mailto:sage [2008/03/16(日) 01:38:20 ID:???] CakePHPはこんな糞フレームワークなんですよ! 結論がでたね
128 名前:nobodyさん mailto:sage [2008/03/16(日) 01:38:32 ID:???] で、それにかわるフレームワークなんだが、 CodeIgnitor なんてどうかな?
129 名前:nobodyさん mailto:sage [2008/03/16(日) 01:39:10 ID:???] CodeIgnitor。いいよね!
130 名前:nobodyさん mailto:sage [2008/03/16(日) 01:41:35 ID:???] いいんだよ!!ね!ねって!
131 名前:nobodyさん mailto:sage [2008/03/16(日) 01:43:44 ID:???] ↓次の質問どうぞ
132 名前:nobodyさん mailto:sage [2008/03/16(日) 08:13:02 ID:???] 何この流れ。くだらねえ。
133 名前:nobodyさん mailto:sage [2008/03/16(日) 12:34:32 ID:???] 話し戻していいですか? アソシエーションしたモデルをfindAllなどで持ってくると、 いろんな構造のデータになるけど、どんなパターンがあるのかな? ちょっと見にくいだろうけど、ありそうなのを組み合わせてみた。 この結果から、配列.Model.・・・、Model.Model.・・・、Model.field、Model.配列.field の パターンに大別できると思っている。 Model.配列.配列.field なんてのは無い。 そしてキーの先頭が大文字ならモデル名、数値なら配列、 先頭が小文字ならフィールド名と判別できると思っている。 Model::aliasとかあまり使ってないんだけど、これであってる? 何の為にこれを調べているかというと、アソシエーションでごっそり取ってきた 全データの中で、特定モデルの特定の型(たとえば日付)のフィールドだけ変換したいっていう場合に array_walk_recursiveみたいなのがあればやりやすくない?という話 その下調べ
134 名前:nobodyさん mailto:sage [2008/03/16(日) 12:34:56 ID:???] array( 'Model1' => array( 'model1_field1' => '値1', 'model1_field2' => '値2', ), 'Model2' => array( '0' => array( 'model2_field1' => '値1', 'model2_field2' => '値2', ), '1' => array( 'model2_field1' => '値1', 'model2_field2' => '値2', ), ), 'Model3' => array( '0' => array( 'model3_field1' => '値1', 'model3_field2' => '値2', 'Model4' => array( 'model4_field1' => '値1', 'model4_field2' => '値2', ) ), '1' => array( 'model3_field1' => '値1', 'model3_field2' => '値2', 'Model4' => array( 'model4_field1' => '値1', 'model4_field2' => '値2', ) ), ), ) これに加えて一番上が配列で始まる事もある。
135 名前:nobodyさん mailto:sage [2008/03/16(日) 14:39:55 ID:???] 落ちる落ちるってデマ情報流してるやつは何なの? >>119-121 それで落ちるってphp.iniにどんな設定しとるんや? まずは脳内メモリを増設したほうがいいんじゃね?(プ
136 名前:nobodyさん mailto:sage [2008/03/16(日) 16:55:47 ID:???] >>135 脳内メモリ増設したいんやが、空きが無いんや
137 名前:nobodyさん mailto:sage [2008/03/16(日) 17:21:50 ID:???] >>136 すでについとる容量の低いやつを全部外して デュアルチャネル対応の容量大きいやつを増設したらええんや そしたらCakeもサクサク、オマエの小汚い脳内もサックサク〜(* ^ー゚)
138 名前:nobodyさん mailto:sage [2008/03/16(日) 17:40:40 ID:???] >>137 おまえはCPU変えた方がよさそうだなw
139 名前:nobodyさん mailto:sage [2008/03/16(日) 22:05:49 ID:???] >>138 ツマンネー
140 名前:nobodyさん mailto:sage [2008/03/16(日) 22:11:05 ID:???] 先輩方、マジ質問なんですが、自分はdreamweaver を使ってます。 ecripse って最近よく聞くんですが、 dreamweaver よりも開発効率いいんでしょうか。 よろしくお願いします。
141 名前:nobodyさん mailto:sage [2008/03/16(日) 22:46:20 ID:???] >>140 pc11.2ch.net/test/read.cgi/php/1171452901/
142 名前:nobodyさん mailto:sage [2008/03/16(日) 22:54:10 ID:???] Javaならエクリプス必須だけどPHPは秀丸で充分じゃね?関数少ないし。
143 名前:nobodyさん mailto:sage [2008/03/16(日) 23:03:52 ID:???] PHPフレームワークのCakePHPに相次ぐ批判の声 news24.2ch.net/test/read.cgi/news2/1193936653/ とりあえず「脳内メモリがや〜」とか言ってる人は読んどいたら?
144 名前:nobodyさん mailto:sage [2008/03/17(月) 00:45:30 ID:???] >>119 私もこのコードを書いたら、彼女が出来ました!
145 名前:nobodyさん mailto:sage [2008/03/17(月) 01:02:50 ID:???] ここいる住人は全員初心者ばっかりくせーw
146 名前:nobodyさん [2008/03/17(月) 01:03:05 ID:BkHzbTOg] gzipの方のアーカイブって変なフォルダ入ってね?あれ何に使うの?
147 名前:nobodyさん [2008/03/17(月) 01:06:46 ID:BkHzbTOg] >>119 落ちなくて困っているんだけど、どうすればいい?
148 名前:nobodyさん mailto:sage [2008/03/17(月) 01:23:22 ID:???] 結局CakePHPは糞フレームワークという結論でよろしいですね!
149 名前:nobodyさん mailto:sage [2008/03/17(月) 01:23:58 ID:???] >>148 ノープロブレム
150 名前:nobodyさん mailto:sage [2008/03/17(月) 01:25:35 ID:???] よろしいから、どっか行け、な。使わなくていいから。マジで。
151 名前:nobodyさん mailto:sage [2008/03/17(月) 01:27:02 ID:???] このスレを見てたら大手が採用しない理由がわかってきたw
152 名前:nobodyさん mailto:sage [2008/03/17(月) 01:34:16 ID:???] とりあえずCakePHPはよく落ちる糞フレームワークということを みんなで中小企業にアピールしようぜ。 そしてもう二度と同じ被害者を生まないためにも
153 名前:nobodyさん mailto:sage [2008/03/17(月) 01:44:22 ID:???] 嫉妬乙
154 名前:nobodyさん mailto:sage [2008/03/17(月) 01:59:39 ID:???] いや、マジで駄目だから使わないほうがいい。 使うのは駄目な俺だけでいい。
155 名前:nobodyさん mailto:sage [2008/03/17(月) 02:09:58 ID:???] この流れで落ちるとかいっても逆効果だろw 誰も信用してないよ。
156 名前:nobodyさん mailto:sage [2008/03/17(月) 06:47:17 ID:???] モデルにバリデーションとアソシエーションをがっつり入れた 超みにくいよw
157 名前:nobodyさん mailto:sage [2008/03/17(月) 07:00:18 ID:???] あぁ。だから俺はバリデーションをYAMLに書いて、 それを読み込むようにしている。
158 名前:nobodyさん mailto:sage [2008/03/17(月) 15:09:42 ID:???] フォームでURLの入力補助として デフォルト値にhttp://をつけると バリデーションで他の項目がひかかったときに yahoo.co.jp と入力していても またhttp://のデフォルト値がはいる デフォルト値は最初の画面だけ挿入したい場合はどうすればいいのですか $form->input('TestUser.url', array('value'=>'http://')
159 名前:nobodyさん mailto:sage [2008/03/17(月) 15:29:54 ID:???] >>141 >>142 ありがとうございます!
160 名前:nobodyさん mailto:sage [2008/03/17(月) 16:22:23 ID:???] たった3日で150レスだと…?
161 名前:nobodyさん mailto:sage [2008/03/17(月) 16:39:49 ID:???] >>158 その辺て自動でやってくれないんだっけ? 再編集のときの話だったら、データ構造を見て本来はDBから持ってくるデータを用意しておいてあげればいい またはデータが無いと判断したときだけ、value入れればいいんじゃね
162 名前:nobodyさん mailto:sage [2008/03/17(月) 18:22:09 ID:???] >>158 タイムリーだなw 俺も今同じようなことをやっていた。 最初はそのように、$form->inputに書いていたが、 同じようにダメだと気づいて、 コントローラで、(↓こんな感じ。適当に書く) if(!empty($this->data)) { if($this->Model->save($data)) { ・・・ } else { ・・・ } } else { $this->data['Model']['url'] = 'http://'; } 本当についさっき書いたコードなので、これで問題ないか深く考えていない。
163 名前:nobodyさん mailto:sage [2008/03/17(月) 20:25:58 ID:???] コントローラでやることじゃないなー
164 名前:nobodyさん mailto:sage [2008/03/17(月) 21:47:14 ID:???] >>163 プログラマならコードで示してね。
165 名前:nobodyさん [2008/03/17(月) 22:07:27 ID:6Wsl0FQ6] scaffoldでエラーが出るのですが、何が原因か教えてもらいたいです。 エラーの内容は Warning: Invalid argument supplied for foreach() in /home/~~/htdocs/cake/cake/libs/controller/controller.php on line 666 Warning: Invalid argument supplied for foreach() in /home/~~/htdocs/cake/cake/libs/controller/controller.php on line 801 コントローラとモデルはscaffoldのみのシンプルなものです。
166 名前:nobodyさん mailto:sage [2008/03/17(月) 22:16:46 ID:???] >>165 まず該当箇所を見てみればいいと思うが
167 名前:nobodyさん mailto:sage [2008/03/17(月) 22:21:02 ID:???] >>162 Viewにこう書くのはどう? if(empty($this->data['TestUser']['url'])) $this->data['TestUser']['url']='http://'; echo $form->input('TestUser.url', array('label'=>'*URL','size'=>50,'value'=>$this->data['TestUser']['url']));
168 名前:nobodyさん [2008/03/17(月) 22:28:21 ID:6Wsl0FQ6] 666:foreach ($objRegistryModel->_tableInfo->value as $tabl) { 801:foreach ($objRegistryModel->hasAndBelongsToMany as $relation => $relData) { でした。何なんでしょうか。アソシエーションでしょうか。
169 名前:nobodyさん mailto:sage [2008/03/17(月) 22:52:12 ID:???] >>157 この辺りの辺、サンプルある? もしあったら見せて欲しい。 昨日あたりからcakePHPを使い初めたのだけど、たしかにWebにあった チュートリアルに沿って作ると、モデルがヴァリデーションだらけに なりそうなので。
170 名前:nobodyさん mailto:sage [2008/03/18(火) 00:22:51 ID:???] >>169 YAMLの使い方ググれよ
171 名前:nobodyさん mailto:sage [2008/03/18(火) 00:52:36 ID:???] >>164 いちいちコード書かないとわからんのか 設計とかパターンとか学べ
172 名前:nobodyさん mailto:sage [2008/03/18(火) 03:38:03 ID:???] >>164 一行レスとか煽りに一々反応すんなよ 荒れるだけだよ
173 名前:nobodyさん mailto:sage [2008/03/18(火) 04:22:49 ID:???] つーかこんで良いんじゃねぇの? controler $url = ''; $data = $this->Model->ほげほげ(); if (unko) { $url = $data["url"] } $this->set('url',$url); view $form->input('TestUser.url', array('value'=>$url)
174 名前:nobodyさん [2008/03/18(火) 09:45:05 ID:LdGu1qpa] >168のscaffoldの奴です。 bakeでいろんなテーブルを焼いてみると、まともにscaffoldが働くものもありました。 焼かれたVIEWのIndex.thtmlを見てみると、テーブルの値を表示する所で、配列の添え字が記入されていませんでした。 おそらくテーブルの定義の仕方に問題があるように思います。 テーブルの定義は、まず成功した方が Table "public.users" Column | Type | Modifiers ------------+------------------------+----------- id | integer | not null username | character varying(255) | not null password | character varying(32) | not null first_name | character varying(255) | not null last_name | character varying(255) | not null 次に失敗した方が Table "public.flash_tests" Column | Type | Modifiers --------+---------+---------------------------------------------------------- id | integer | not null default nextval('flash_tests_id_seq'::regclass) count | integer | not null です。fefaultの所は削除しても変わりませんでした。 心当たりのある方、助言お願いします。
175 名前:nobodyさん mailto:sage [2008/03/18(火) 09:53:20 ID:???] >>173 なにその汚ねーコードw
176 名前:nobodyさん mailto:sage [2008/03/18(火) 09:54:14 ID:???] >>173 それだけはありえん
177 名前:nobodyさん mailto:sage [2008/03/18(火) 13:01:47 ID:???] ありえんとかいってないで、 自分のコードをかけよ。
178 名前:nobodyさん mailto:sage [2008/03/18(火) 13:03:45 ID:???] 初期値の設定は、前回入力値の設定と同じことなんだから コントローラで設定すべきだよな。 ビューはただ表示するだけ。
179 名前:nobodyさん mailto:sage [2008/03/18(火) 15:07:02 ID:???] >>178 根拠の無い理由は自分の心の中でしまっとけな
180 名前:nobodyさん mailto:sage [2008/03/18(火) 15:09:23 ID:???] >>177 167に書いたよ、この美しいコードに反論あるんか?
181 名前:nobodyさん mailto:sage [2008/03/18(火) 15:11:30 ID:???] >>173 こんなコード書く奴がこのスレにいるとは CakePHPの住人レベルて・・・
182 名前:nobodyさん mailto:sage [2008/03/18(火) 15:13:24 ID:???] 明らかにPHP初心者がCakePHPから始めましたみたいなのが多いな >>173 を見て確信した
183 名前:nobodyさん mailto:sage [2008/03/18(火) 15:20:33 ID:???] ああ。ガチだな。
184 名前:nobodyさん mailto:sage [2008/03/18(火) 15:59:35 ID:???] 最近10分以内に似たようなレスが連続で湧くな
185 名前:nobodyさん mailto:sage [2008/03/18(火) 16:06:00 ID:???] じゃあアンケートとります。 フォームの初期値はどこで設定すべきでしょう。 1.コントローラ 2.ビュー 3.モデル 4.モデルに初期値情報が有り、それをコントローラが取得してビューに渡す 俺は4。面倒だとか、フォームによって初期値が違う場合は1
186 名前:nobodyさん mailto:sage [2008/03/18(火) 16:45:53 ID:???] >>185 俺はビューかな。
187 名前:nobodyさん mailto:sage [2008/03/18(火) 16:51:14 ID:???] >>185 俺もビュー 管理するのが楽 コントローラーに書くとみにくくなる ビューだと全くみにくくない、それどころか見通しがよくなる
188 名前:nobodyさん mailto:sage [2008/03/18(火) 16:53:16 ID:???] >>185 モデルをこれ以上見にくくするのはよくないよ バリデータ アソシエーション バリデータ関数 これだけでもずいぶん見にくいのに
189 名前:nobodyさん mailto:sage [2008/03/18(火) 16:54:16 ID:???] コードの見渡しがよくなって 変更が楽な場所がベスト
190 名前:nobodyさん mailto:sage [2008/03/18(火) 16:55:18 ID:???] >>185 初心者の多いここでアンケートとっても意味が無いけどなw
191 名前:nobodyさん mailto:sage [2008/03/18(火) 17:06:20 ID:???] 常識的に考えればビューだけど ここは初心者が多いからね
192 名前:nobodyさん mailto:sage [2008/03/18(火) 18:10:04 ID:???] >>188 お前、まさか、それだけしかないんじゃないだろうな・・・ モデルは設定ファイルじゃないぞ。 ビジネスロジックを書く所がモデルだぞ。
193 名前:nobodyさん mailto:sage [2008/03/18(火) 18:11:06 ID:???] ビューは基本的に表示のみを行う場所。 初期値をビューで設定するのは変。
194 名前:173 mailto:sage [2008/03/18(火) 19:04:45 ID:???] 確かにてきとーに書いた部分はあるが 何でダメなの?因みにcakeは1週間ぐらいしかやってない あとコントローラに初期値は ロジックとviewの分離等から考えると微妙だが めんどくさかったんだそこはごめんw
195 名前:nobodyさん [2008/03/18(火) 19:29:58 ID:5PAxNly0] なんでここって初心者しかいないの?
196 名前:nobodyさん mailto:sage [2008/03/18(火) 19:38:40 ID:???] なんでここって猿みたいに同じ事しか書けない人が多いの?
197 名前:nobodyさん mailto:sage [2008/03/18(火) 20:28:19 ID:???] >>193 smartyだってテンプレート側で初期値いれらるようになってる おまえの頭が変
198 名前:nobodyさん mailto:sage [2008/03/18(火) 21:23:10 ID:???] >>193 携帯用サイト作るとわかると思うけどあんまりガンガン表示する内容まで コントローラーで固めない方がいいよ。 携帯用サイト用の コントローラーまで作る羽目になるから。
199 名前:nobodyさん mailto:sage [2008/03/18(火) 22:59:49 ID:???] セッションって $_SESSION[''][''] を直接使った方が早い感じがすんだけど、みんなどうしてます? やっぱり $this->Session->read を使った方がいいんですかね。
200 名前:nobodyさん mailto:sage [2008/03/18(火) 23:48:37 ID:???] >>197 > smartyだってテンプレート側で初期値いれらるようになってる 入れられるようになっているからって、入れるべきということにはならないだろ? モデルやコントローラ側で初期値入れられるようになっているんだしさ。 > 携帯用サイト用の コントローラーまで作る羽目になるから。 その理屈がよくわからん。初期値の話をしているのに なんでもコントローラでやると拡大解釈してしてないか? それにビューに書く場合、携帯用サイトとPC用サイトで分けるもんだから、 ビューに初期値を書いたら、コードが重複するじゃん。 だからビューだけはありえない。そう思わないか? ちなみに、おれは初期値はモデルに書くもんだと思っているが。
201 名前:nobodyさん mailto:sage [2008/03/19(水) 01:30:55 ID:???] >>199 オブジェクトで呼んだ方がオーバーライドもできるし 後から制御するのが楽
202 名前:nobodyさん mailto:sage [2008/03/19(水) 01:36:20 ID:???] 柔軟な制御をするためにデータはオブジェクト経由で呼ぶべき オブジェクトで呼ぶことに意味がある それは、オブジェクトにはいってるデータを 外から制御できるからだ
203 名前:nobodyさん mailto:sage [2008/03/19(水) 07:53:45 ID:???] >>201 >>202 cakephp やってて 「意味あるのかな・・・」と思ってましたけど、やっぱり意味があったんですね。 勉強になります。ありがとうございます。
204 名前:nobodyさん mailto:sage [2008/03/19(水) 12:54:14 ID:???] 例えばCakePHPでブログシステムを作るとして、 ユーザ(usersテーブル)、投稿(commentsテーブル)が一対多の 関係にある時、あるviewで、 ユーザ1 コメント1-1 コメント1-2 コメント1-3 ユーザ2 コメント2-1 コメント2-2 コメント2-3 ・ ・ という表示をさせたいのですが、view、controllerをどう書いてよいか悩んでいます。 modelで、hasManyリレーションを貼るところ迄は合っていますか? どこか、参考になるページがあれば教えて下さい。
205 名前:nobodyさん mailto:sage [2008/03/19(水) 19:47:56 ID:???] UserモデルにはhasManyプロパティを作ってcommentsを持っていることを示す。 CommentモデルにはbelongsToプロパティを作って、usersに依存していることを示す。 コントローラのアクションでUserモデルからデータを引っ張ってくる アソシエーションによりCommentもくっついてくる。 コントローラのアクションで、引っ張ってきたデータを ビューに詰め替える。 ビューは渡されたデータをぐるぐるして表示する。
206 名前:nobodyさん mailto:sage [2008/03/19(水) 21:42:10 ID:???] 表示するユーザ数+1のクエリが発行されるからアクセス数の多い中規模〜大規模なサービスでは使えない。 この辺言及する人が少ないのはcakeユーザのレベルが低いからだろうか。
207 名前:nobodyさん mailto:sage [2008/03/19(水) 22:11:32 ID:???] > 表示するユーザ数+1のクエリが発行されるから 何を言っているんだ? 自分のレベルが低いと告白しているのか?
208 名前:nobodyさん mailto:sage [2008/03/19(水) 22:21:01 ID:???] >>206 だって、表示するユーザ数+1のクエリが発行されないから。 誰も指摘しないのは当たり前。
209 名前:nobodyさん [2008/03/19(水) 23:03:06 ID:XOo5uLlV] >>205 返信ありがとうございます。 > コントローラのアクションでUserモデルからデータを引っ張ってくる > アソシエーションによりCommentもくっついてくる。 なるほど。 きちんとリレーションを設定すれば、コントローラ側ではUserモデル からデータを引っ張るだけで、芋づる式にcommentsを取れるんですね。 > ビューは渡されたデータをぐるぐるして表示する。 今、$usersをforeachで回してる状態なんですが、これを$usersと $commentsの二重ループにすればオッケーですかね。 ちょっとやってみます。 >>206 論点がずれてませんか? そもそも、具体的なアクセス数、H/Wの規模を示さないと意味のない 指摘じゃないでしょうか。 この方法だと中規模以上に向かないから、この方法を使うといいよ、 と言うのならまだ分かるのですが。
210 名前:nobodyさん mailto:sage [2008/03/19(水) 23:13:10 ID:???] >>207 >>208 お前らのcakeはこの時どういったクエリが発行されんの? select ... from users ... (id 1,3,5のユーザがヒットする) select ... from comments where user_id in (1) ... select ... from comments where user_id in (3) ... select ... from comments where user_id in (5) ...
211 名前:nobodyさん mailto:sage [2008/03/19(水) 23:28:29 ID:???] 72.14.235.104/search?q=cache:frA0R04esqgJ:ameblo.jp/lamp777/entry-10072229261.html+cakephp+%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3+left+join&hl=ja&ct=clnk&cd=10&gl=jp そして、この findAll() で実行された SQL は以下の通り。 SELECT `Job`.`id`, `Job`.`com_id`, `Job`.`name` FROM `jobs` AS `Job` LEFT JOIN `coms` AS `Com` ON `Job`.`com_id` = `Com`.`id` WHERE 1 = 1 ORDER BY `Job`.`id` ASC LIMIT 10;
212 名前:nobodyさん mailto:sage [2008/03/19(水) 23:42:19 ID:???] belongsToじゃなくてhasManyのこと言ってるんだけど。 参照の方向が違う。
213 名前:nobodyさん mailto:sage [2008/03/20(木) 00:12:41 ID:???] といわれてもなぁ、 hasmanyとかconditionsにどういうSQLで JOINするかをSQLの断片で書いているしなぁ。 JOINしているとわかりそうなものだがなぁ。
214 名前:nobodyさん mailto:sage [2008/03/20(木) 00:28:36 ID:???] 子はJOINできないじゃん。 結局「表示するユーザ数+1のクエリが発行される」が間違ってることは示せないんでしょ。 実際やってみてクエリログ見ればすぐ分かるはずなんだが。
215 名前:nobodyさん mailto:sage [2008/03/20(木) 00:37:04 ID:???] >>210 素人乙! 観点がずれてるよPHPの基礎からやりなおしてね
216 名前:nobodyさん mailto:sage [2008/03/20(木) 00:40:19 ID:???] 1回のクエリで全てが補えることに超したことはない その代わり複雑なSQL文を書かないといけないから CakePHPの負荷よりも生産性というスタイルに合わないがな ループの中でクエリをぐるぐる発行しまくると負荷が高くなる
217 名前:nobodyさん mailto:sage [2008/03/20(木) 00:43:11 ID:???] >>215 結局こういうのが出てくるのか・・・ ほんとバカばっかだなー それじゃ論点がどうずれてるか説明もらってもいい? 210での発言にphpの基礎は全く関係ないから、それのほうが論点ずれてると思うのだが。 んで、実際お前のcakeではこの処理でどういうクエリが発行されんの?
218 名前:nobodyさん mailto:sage [2008/03/20(木) 00:47:43 ID:???] >>209 よほどのことがない限り ループの中にループは入れない方がいいよ 負荷がかかるからね。
219 名前:nobodyさん mailto:sage [2008/03/20(木) 00:52:19 ID:???] CakePHPのおかげで とてつもなく負荷の高いシステムがたくさん世に出そうだな こりゃサーバー会社が儲かるな sakuraインターネット株でも買うか!
220 名前:nobodyさん mailto:sage [2008/03/20(木) 05:31:17 ID:???] 1.2のpaginate機能はつかえねーな 柔軟な制御ができん、 ページリンクに検索項目のパラメーター付加できない、というか できるけど、面倒なことしないとダメくさい ソート項目のパラメータは標準で付加できるようだが
221 名前:209 [2008/03/20(木) 10:56:59 ID:mwRuCB98] >>218 私の技術力だと、二重ループ以外に実現する方法が思いつかないのですが、 他によい方法があったら教えてもらえますか? ユーザ毎のコメントを表示する機能はパスするにしても、 同様にmasManyリレーションのテーブルを親子両方とも表示したい 機会はあると思うので。 負荷という意味では、masManyの定義でlimit=>10とする事で大量の子を 取得しないように、というのは心がけています。
222 名前:nobodyさん mailto:sage [2008/03/20(木) 11:48:27 ID:???] >>219 もっと負荷の高いsymfonyもありますぜw
223 名前:nobodyさん mailto:sage [2008/03/20(木) 12:36:12 ID:???] というか、プライマリーキーで データを取得することが 負荷が高いと思っているのかな? JOINの方がよっぽど負荷高いですぜ。
224 名前:nobodyさん mailto:sage [2008/03/20(木) 12:40:34 ID:???] DB周りじゃないだろ多分
225 名前:nobodyさん mailto:sage [2008/03/20(木) 12:58:50 ID:???] >>210 > お前らのcakeはこの時どういったクエリが発行されんの? こういうクエリが発行されますがなにか? select ... from users ... (id 1,3,5のユーザがヒットする) select ... from comments where user_id in (1, 3, 5 ) ...
226 名前:nobodyさん mailto:sage [2008/03/20(木) 13:35:31 ID:???] CakePHPのどんどん負荷をかけて生産性を上げなさいというスタイルが 自分の性格に合わない気がしてきた
227 名前:nobodyさん mailto:sage [2008/03/20(木) 13:39:58 ID:???] まだ、例のアンチが常駐しているのかw CakePHPはメモリも食わないし、負荷も高くない。 生産性は高い。
228 名前:nobodyさん mailto:sage [2008/03/20(木) 13:40:43 ID:???] アンケート 1.ページ送りの絞り込み条件パラメータをセッションで持たせている 2.ページ送りの絞り込み条件パラメータをURLの後ろに繋げてる(CakePHP1.1 paginate) 3.ページ送りの絞り込み条件パラメータをURLの後ろに繋げてる(CakePHP1.2 pagination)
229 名前:nobodyさん mailto:sage [2008/03/20(木) 13:45:28 ID:???] >>228 4. 基本は3と同じだが、場合によってpagination等をオーバーライドして独自の条件を追加している。
230 名前:nobodyさん mailto:sage [2008/03/20(木) 13:45:45 ID:???] >>227 矛盾してるな。それらは反比例の関係にあるからな
231 名前:nobodyさん mailto:sage [2008/03/20(木) 13:45:54 ID:???] >>226 たしかに、 ●自分の用途に合わせて、全てのコードとHTMLを一から作成したシステム ●作り込み部分は最小限にして、大半のコードはcakePHP任せにしたシステム を比べると、負荷は、一から作成したシステムの方が、余分なものがない分、 軽くできるかもね。 まあそこはトレードオフの部分だから、自分に向いてないと思ったら、 cakePHP以外のやり方を模索すればいいと思うよ。
232 名前:nobodyさん mailto:sage [2008/03/20(木) 13:47:58 ID:???] >>230 よくわからんが、いまどき生産性の悪いほうを 選びたいのか?
233 名前:nobodyさん mailto:sage [2008/03/20(木) 13:49:21 ID:???] 負荷が高いシステムを作っているところは どこでもフレームワークを使っている。
234 名前:nobodyさん mailto:sage [2008/03/20(木) 13:50:32 ID:???] >>229 View側で $paginator->prev() $paginator->next() の第2引数に絞り込み条件を配列で入れてやら無いと URLの後ろにパラメーターが付加されてなくない? localhost/cake/test/index/page:1/parameta:hogehoge みたいなかんじ
235 名前:nobodyさん mailto:sage [2008/03/20(木) 13:55:14 ID:???] >>234 いまソースが手元に無くて忘れたが、CakePHP1.2でかなり改善された。 そういえば、そういうパラメータを”コントローラ”側で追加していたきもする。 コントローラーのpagination変数だったっけ? pagination[モデル名]だっけ? まあわすれた。
236 名前:nobodyさん mailto:sage [2008/03/20(木) 13:55:53 ID:???] >>233 どちらかと言うと、「負荷が高いシステム」と言うより、 「大規模なシステム」はフレームワークを使ってるという感じじゃない? そうしないと、コーディングや保守が大変だもんなあ。
237 名前:nobodyさん mailto:sage [2008/03/20(木) 14:03:35 ID:???] 結局は、昔からある速度重視でアセンブラ(生PHP)で書くか、 生産性重視で高級言語(フレームワーク)で書くかの話でしかないな
238 名前:nobodyさん mailto:sage [2008/03/20(木) 14:07:42 ID:???] 小規模フレームワークはCIが一番だと思うんだよね CakePHPは小規模フレームワークのクセにsymfonyと同レベルくらい負荷かかりすぎ
239 名前:nobodyさん mailto:sage [2008/03/20(木) 14:12:16 ID:???] >>238 宿題。 それをデータで示してください。 つーか、何をもって小規模といっているのかわからん。
240 名前:nobodyさん mailto:sage [2008/03/20(木) 14:15:07 ID:???] 機能が少ないほうが早い。 機能と速度どっちをとるかだ。
241 名前:nobodyさん mailto:sage [2008/03/20(木) 14:15:17 ID:???] >>239 10万stepまで 小規模 データは「CakePHP CodeIgniter ベンチマーク」でググれ
242 名前:nobodyさん mailto:sage [2008/03/20(木) 14:18:04 ID:???] >>239 www.tsujita.jp/blojsom/blog/default/PHP/2007/07/13/PHP%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF-Zend-Framework-vs-Symfony-vs-CakePHP-vs-CodeIgniter-vs-PHP-on-TRAX.html
243 名前:nobodyさん mailto:sage [2008/03/20(木) 14:20:54 ID:???] だめだな。CodeIgniter は小規模でしか使えない。 一番重要なモデルが貧弱すぎる。中規模以上ならCakePHPだな。 blogs.atanaka.biz/tanaka/index.php?itemid=691 ・フレームワークにありがちな、あまり使わない機能が削がれている ・フレームワークにありがちな、よく使う機能もけっこう削がれている。 ・だから、ステップ数が他のPHPフレームワークと比べて格段に少ない。 ・だから、実行速度が速い。(ベンチマークはこちら) ・フレームワーク自体が複雑なことをしようとしていないので、潜在バグの深刻さも小さい。(たぶん) ・マニュアルがかなり読みやすく、取っつきやすい。 ・cakePHPには名前のインパクトには負ける。 ・ZendFramework には格式の高さで負ける。 ・MVCというよりは、VCだ。モデルはあくまでもおまけ的。 ・PHPがそもそもテンプレート的なんだからテンプレートエンジンいらない、と考えているふしあり。(だから速い、と) ・でも、簡単な変数置き換えの簡易テンプレートはデフォルトでついてるし、Smartyとの連携もできる。
244 名前:nobodyさん mailto:sage [2008/03/20(木) 14:22:14 ID:???] 流行らないフレームワーク。そっちで盛り上げてくださいw [PHP][フレームワーク]CodeIgniterスレ pc11.2ch.net/test/read.cgi/php/1177683436/
245 名前:nobodyさん mailto:sage [2008/03/20(木) 14:25:59 ID:???] >>243 モデルはCIベースでオレオレ的に拡張した方がいい。 CakePHPの既存モデルにしっくり来ないから まずコードが凄く見難い状態になる 結局バリデートにYAML使ったりと拡張しないいけない
246 名前:nobodyさん mailto:sage [2008/03/20(木) 14:27:28 ID:???] 小規模 CodeIgniter 中規模 CakePHP 大規模 Symfony これでいいじゃん
247 名前:nobodyさん mailto:sage [2008/03/20(木) 14:29:19 ID:???] 小規模 CI 中規模 CI 大規模 ここまできたらCIでいいや
248 名前:nobodyさん mailto:sage [2008/03/20(木) 14:31:12 ID:???] CIのサクサク感を味わうと他のFWは使えない
249 名前:nobodyさん mailto:sage [2008/03/20(木) 14:36:26 ID:???] >>225 それバージョンいくつ?
250 名前:nobodyさん mailto:sage [2008/03/20(木) 14:36:52 ID:???] viewの先頭でoptions()を使って追加文字列をセットしておけば、prev()やsort()等で追加の指定する必要なくなる $paginator->options(array('url'=>'hogehoge')) controllerでpaginate(モデル)した後のoptionsにセットしてもurlに展開される $this->params['paging'][モデル]['options']['hogeoge_key']='hogeoge_value' *この方法は裏技的な気がするけど、、、
251 名前:nobodyさん mailto:sage [2008/03/20(木) 14:39:31 ID:???] >>249 1.2ですが?
252 名前:nobodyさん mailto:sage [2008/03/20(木) 14:40:57 ID:???] 痛いCI厨は自分のスレを盛り上げてこいよw わざわざCakePHPスレを盛り上げて乙
253 名前:nobodyさん mailto:sage [2008/03/20(木) 14:46:46 ID:???] 経験から言うと、どんなものでも「軽い!」という触れ込みでデビューしたものは、 最初は機能が少なくて、バージョンがあがるにつれて機能が追加され最終的には重くなるんだよな。 で、ほかと同等の機能を備えたときには、ほかと同等の重さになっている。
254 名前:nobodyさん mailto:sage [2008/03/20(木) 15:00:55 ID:???] CIスレですが、今週の日曜以降、書き込みがありません。 使ってる方、どうぞ書き込んで下さい。 pc11.2ch.net/test/read.cgi/php/1177683436/l50
255 名前:nobodyさん mailto:sage [2008/03/20(木) 15:11:51 ID:???] akelosスレなんてもっと(ry
256 名前:nobodyさん mailto:sage [2008/03/20(木) 15:33:39 ID:???] >>251 hasManyアソシエーションでlimitを指定しないと確かに225のクエリになる。 ソース読んだらそのためのif文があった。これは知らなかった。サンクス limit指定しないのが普通なのか・・・あと、なんでそういう実装にしてるんだろう。 limitでUserの件数絞るとしてもwhere user_id (1,3,5)はできると思うのだが。
257 名前:nobodyさん mailto:sage [2008/03/20(木) 15:35:10 ID:???] 間違えた。 > limitでUserの件数絞るとしても limitでCommentの件数絞るとしても
258 名前:nobodyさん mailto:sage [2008/03/20(木) 15:42:11 ID:???] >>256 >>257 面倒ならカスタムsqlでやれば早いじゃん
259 名前:nobodyさん mailto:sage [2008/03/20(木) 15:42:19 ID:???] んー、Commentに対するlimitがある場合はそう実装するしかないのか。 バカじゃん俺。この振る舞いについてのドキュメントはどっかにあったのかな。 連投スマソ。
260 名前:nobodyさん mailto:sage [2008/03/21(金) 01:06:38 ID:???] Cakeとは関係ないんですが、複数のモデルの処理(全部更新)を1個のトランザクションにするときってどう書いたらいいですか? コントローラーにこんな感じで書こうと思うのですがどうでしょうか。 start transaction $resultA = $modelA ->method(); if($resultA == 'error') { rollback return; } $resultB = $modelB ->method(); if($resultB == 'error') { rollback return; } $resultC = $modelC ->method(); if($resultC == 'error') { rollback return; } commit
261 名前:nobodyさん mailto:sage [2008/03/21(金) 04:01:36 ID:???] >>260 スレ違いだと思うんだけど・・・
262 名前:nobodyさん mailto:sage [2008/03/21(金) 11:15:08 ID:???] confirmぺルパー作成完了
263 名前:nobodyさん mailto:sage [2008/03/21(金) 11:28:48 ID:???] ぺルパーについてkwsk
264 名前:nobodyさん mailto:sage [2008/03/21(金) 22:38:30 ID:???] バリデートのyaml化作業開始
265 名前:nobodyさん [2008/03/22(土) 02:17:57 ID:rTbTxKR5] コンポーネントの中でモデルって使えるよね、$this->モデル名とかで。 コントローラにはあまり詳細な処理は書きたくない(つまり、大まかな流れだけ)ので、 具体的な処理はコンポーネントをこさえて、そちらで処理したいんだけど考え方あってるかな? たとえば、会員登録処理をするアプリを例にすると、UserRegisterComponentみたいなのを作って identify()やregister()、update()といったモデルを扱う処理を記述して、 コントローラーからはフォームの値の受け取りとコンポーネントをコネコネ使うこと、結果によって ビューを表示しわけるようなイメージです。 ソース書いて晒した方が早い?
266 名前:nobodyさん mailto:sage [2008/03/22(土) 03:46:35 ID:???] >>265 > コントローラにはあまり詳細な処理は書きたくない > 具体的な処理はコンポーネントをこさえて、そちらで処理したい 大事なのはこれらの明確な理由が何なのかってことだと思う。 その会員登録処理がシステムの他の部分からも必要になるならコンポーネントにした方がいいと思うよ。 もしくは他のアプリでも(ほぼ)そのまま使用できるなら。 あとはコントローラとモデル(DAO層)を分離することでテスタビリティを向上させたいとかかなぁ 例えばテストの時はモックコンポーネント使うようにすればデータベースがなくてもコントローラのテストができる。
267 名前:265 [2008/03/22(土) 05:08:43 ID:rTbTxKR5] >>266 なるほど。コンポーネントで会員登録処理と思いついた理由は指摘のとおり他のアプリで いつも同様のことを実装してるのでコンポーネント化してしまおうというのが一番の理由。 それにコントローラ内に細かい条件分岐や処理を書き始めるとものすごくコードが肥大して メンテナンスがし難いし、もし今後会員登録のフローを同アプリケーションの別箇所でも使い たいって仕様変更があっても対応しやすいかと。 でも、「会員登録(管理)コンポーネント」なんて作っちゃうとモデルやDBテーブルの構造が かなり固定化&依存してしまうのがいやだなだ、と…(AuthComponentみたいにね) それならばpluginにしちゃえば?って考えることもあるけど、pluginってあんまり使われてないし。 うーむ。
268 名前:nobodyさん mailto:sage [2008/03/22(土) 10:11:22 ID:???] >>267 そんな恐ろしいほどにコードが肥大する。かつそれら共通利用する機会が多いなら コンポーネント化しちゃいなよ
269 名前:nobodyさん mailto:sage [2008/03/22(土) 10:19:47 ID:???] >>267 DBテーブルの構造がかなり固定化&依存 これ内容が会員登録だったらテーブル構造に依存しちゃうのやばいだろ? 会員認証なら固定依存しても、それほど問題ないけど コンポーネントてそもそもDBテーブルの構造がかなり固定化&依存してしまうものなんだね
270 名前:nobodyさん mailto:sage [2008/03/22(土) 10:52:32 ID:???] >>267 コンポーネント設計のポイントは、Plug-and-Playを可能にすることであり、独立性を高めることにある 重要となる設計要素は、インターフェースであり、注目すべきは設計要素間の依存関係だと思う 内部実装に依存しない形でコラボレーションをモデル化できるインターフェースが重要じゃないかな コンポーネント化するということは、結局クラスをグループ化することだからね クラス間の関連(集合-部分、汎化-特化)と依存関係を意識して設計しないと 物理的にはコンポーネント化したが、論理的にはひとつのシステム全体 ひとつの再利用単位として使わざるを得ないという状況が現れるから この点で、依存関係の設計はかなり重要
271 名前:nobodyさん mailto:sage [2008/03/22(土) 11:26:27 ID:???] >>266 モックコンポーネント あまり聞かない、組み合わせだけどw モックとコンポーネント入れ替えするものじゃないの?
272 名前:nobodyさん mailto:sage [2008/03/22(土) 11:49:52 ID:???] モックンがどうかしたって?
273 名前:nobodyさん [2008/03/22(土) 19:56:20 ID:rTbTxKR5] ちなみにCakePHPのプラグインを配布してるサイトをご存知ですか? 「配布できる」と書いてあるくせに、プラグイン配布サイトって見たことないやと思って。 「会員登録プラグイン」とかあるといいのになー 会員登録コンポーネントの件、結局ユーザーテーブルを分けて(users:ログインIDとパスワードだけ、user_profiles:その他のプロフィール項目) コンポーネントで固定化するのはusersテーブルを主にして、user_profilesの方はアプリケーション毎に 自由に定義できるような仕様でコンポーネントを書いてみようかと思っています。
274 名前:nobodyさん mailto:sage [2008/03/22(土) 20:52:09 ID:???] >>271 そういうこと。テストの時はモックを使うようにする。 「コンポーネントのモック」って意味でモックコンポーネントって言った。
275 名前:nobodyさん mailto:sage [2008/03/22(土) 21:01:00 ID:???] >>273 会員登録プラグイン 何度も使うような処理でも無いし面倒な処理でもないからなあ 個人的には確認画面やらページ送りやら何度も使う場面のあるプラグインもしくは コンポーネントが欲しい
276 名前:nobodyさん mailto:sage [2008/03/23(日) 01:31:09 ID:???] バリデートのyaml化作業完了 yamlの空白に少しはまった
277 名前:nobodyさん mailto:sage [2008/03/23(日) 02:03:00 ID:???] >>276 おつかれっす
278 名前:nobodyさん mailto:sage [2008/03/23(日) 12:24:28 ID:???] findのような感じで、IDを指定してDBデータの更新を ファンクションはありますか? イメージとしてはこんな感じで。 $this->Post->hogehoge($id, 'Address'->'Hokkaido'); Model classのファンクションを一通り眺めてみたのですが、 それらしきファンクションを見つける事ができませんでした。 api.cakephp.org/class_model.html#d25735e5d69a1c55c58de6df8c06bd9e
279 名前:nobodyさん mailto:sage [2008/03/23(日) 13:03:51 ID:???] >>278 ファンクションて何ですか?素人は書き込まないで下さい
280 名前:278 [2008/03/23(日) 13:46:28 ID:9wMqWTzf] >>279 先に挙げたURLで、「Public Member Functions」と記述されていたので、 ファンクションと書かせてもらいました。 methodと言えばいいですか? 既存のものでいうと、findAllやsaveなどの事です。 ご存じでしたらお教え下さい。
281 名前:nobodyさん mailto:sage [2008/03/23(日) 14:00:59 ID:???] >>280 こんなとこで聞くよりも自分でソース見た方が早くね?
282 名前:nobodyさん [2008/03/23(日) 21:00:13 ID:xiSCrZA7] >>275 会員登録プラグイン、完成したら俺にくれ
283 名前:nobodyさん mailto:sage [2008/03/23(日) 22:20:17 ID:???] >>282 いらねー。たぶん需要ない 会員登録なんてすぐ作れるやんwww
284 名前:nobodyさん mailto:sage [2008/03/23(日) 23:07:41 ID:???] >>278 カラム単位の更新でいいなら、saveField。 $this->Post->id = $id; $this->Post->saveField('Address', 'Hokkaido');
285 名前:nobodyさん mailto:sage [2008/03/23(日) 23:25:30 ID:???] いらなきゃ使わなきゃいいじゃん。 小さい車輪だろうが再開発をしなくて済むなら助かる。
286 名前:nobodyさん mailto:sage [2008/03/24(月) 00:14:26 ID:???] 再開発する機会が少ない。激しく無駄 そうじゃなければ、すでに作ってる人たくさんいるよ
287 名前:nobodyさん mailto:sage [2008/03/24(月) 00:19:02 ID:???] ほんとにいらなければ何もコメントしないので、たぶん荒らし。 スルー推奨。 しばらく前、本やWebを参考にRoRを使っていたが、cakePHPの方が 使いやすい。 ひょっとしたら、RoRでActiveRecordとかに若干慣れたので、 馴染みやすかっただけかもしんないけど。
288 名前:nobodyさん [2008/03/24(月) 00:22:17 ID:gAnd/HKb] Cakeのプラグインって、なにか有名なのってあったっけ なんのためにプラ銀機能なんて実装されてんの?
289 名前:nobodyさん mailto:sage [2008/03/24(月) 03:29:33 ID:???] 都道府県データどこにいれてる?
290 名前:nobodyさん mailto:sage [2008/03/24(月) 03:37:25 ID:???] コントローラ全体じゃなくてメソッド単位でヘルパー、コンポーネント呼び出すにはどうすればいい? 会員登録ページのメソッドにアクセスしてるにもかかわらず コントローラでPaginationコンポーネントを定義していれば ページ処理の関わるクラスがnewされるんでしょ
291 名前:nobodyさん mailto:sage [2008/03/24(月) 13:06:37 ID:???] ヘルパーは細かく考えずにコントローラ単位で呼び出すのがCake流 コンポーネントやモデルはヘルパーに比べればメソッド単位で呼び出しやすいけど こっちも深く考えずにコントローラ単位で呼び出すんだ 多分
292 名前:nobodyさん mailto:sage [2008/03/24(月) 13:16:08 ID:???] 例えばググレカスアクションでほげヘルパーを呼び出す場合 function gugurekasu() { App::import('Helper', 'Hoge'); $ajax = new HogeHelper(); }
293 名前:nobodyさん mailto:sage [2008/03/24(月) 20:55:32 ID:???] まあ、そんなに特定のアクションでだけ ヘルパーとか呼び出したいのなら、 そういうコンポーネントを作ればいいんじゃないのかな? コンストラクタあたりで、url見てごにゃごちゃすれば出来るでしょう?
294 名前:nobodyさん mailto:sage [2008/03/25(火) 00:59:47 ID:???] >>292 ネーミングが中途半端だな HogeHelperだけ普通やん
295 名前:nobodyさん mailto:sage [2008/03/25(火) 01:51:15 ID:???] >>294 むしろ$ajaxに突っ込んで欲しかったな
296 名前:nobodyさん [2008/03/25(火) 10:30:40 ID:Qe2AafnS] モデルってあんまりごちゃごちゃ書きたくないよな、dbdesigner2cakeとか使ってるとメンテナンスの面からとく。 だからといってコントローラにごちゃごちゃとロジックを書き並べたくないので コンポーネントにすべてモデルを操作するカスタムメソッドを記述してます。 これって俺だけ?
297 名前:nobodyさん mailto:sage [2008/03/25(火) 10:37:30 ID:???] だからコントローラにいろいろ書くのは まずいケーキだってケーキ様が言っている。 cakephp.org/files/OCPHP.pdf
298 名前:nobodyさん mailto:sage [2008/03/25(火) 10:46:51 ID:???] >>297 ケーキがどうのこうのいおうが 自分の見やすい書き方が一番 たとえば1万step以下のコードなら 全部コントローラに書いた方がいい、みたいなね!
299 名前:nobodyさん [2008/03/25(火) 10:55:58 ID:Qe2AafnS] >>297 3ページ目? こんなにモデルに書くもんかね… 俺だったらcとmの間のコンポーネントをずっしり書くな。別のプロジェクトにも使いまわしできるし。 コントローラだとほぼ、使いまわせないしな。
300 名前:nobodyさん mailto:sage [2008/03/25(火) 11:02:26 ID:???] 1万ステップコントローラにべた書きとかすごいね
301 名前:nobodyさん mailto:sage [2008/03/25(火) 11:05:24 ID:???] >>296 コントローラに関する再利用性の高いメソッドはコンポーネント モデルに関する再利用性の高いメソッドはビヘイビア 再利用性が高いロジックじゃないとダメ そのロジックがコントローラ側かモデル側かどっちに属するかを間違えるとダメ
302 名前:nobodyさん mailto:sage [2008/03/25(火) 11:07:56 ID:???] >>300 再利用性が無いなら 10万stepsでもコントローラにベタ書きするしかないよ
303 名前:nobodyさん mailto:sage [2008/03/25(火) 11:08:52 ID:???] >>299 コンポーネントはコントローラとモデルの仲介役じゃねーよwww
304 名前:nobodyさん mailto:sage [2008/03/25(火) 11:12:12 ID:???] >>299 みたいに再利用性の低いものまでコンポーネントはダメだろな
305 名前:nobodyさん [2008/03/25(火) 11:13:20 ID:Qe2AafnS] ビヘイビヤって1.2からのやつだよね?
306 名前:nobodyさん mailto:sage [2008/03/25(火) 11:14:25 ID:???] >>296 コンポーネントにすべてモデルを操作するカスタムメソッドを記述してます これダメだろ?再利用性の高さとか無視してるやん
307 名前:nobodyさん mailto:sage [2008/03/25(火) 11:17:23 ID:???] 1.1てバリデーションのyaml化できないんでしょ それだけでもオワッテルw
308 名前:nobodyさん mailto:sage [2008/03/25(火) 11:22:06 ID:???] 都道府県データとか 男性・女性・オカマとか こういうセレクトに必要な初期データはどこへ入れるの?
309 名前:nobodyさん mailto:sage [2008/03/25(火) 11:38:31 ID:???] >>307 spyc重くね? >>308 とりあえずモデル作ってfind('list')呼んでセレクトボックスへ流す。 都道府県データなんてほぼ100%変更出ないからデータの中身は定数でもいいし 郵便番号検索とか使うアテがあるならデータベース使う。 中で何やってるかは置いといて、ともかくモデルから呼べる事が大事。
310 名前:nobodyさん mailto:sage [2008/03/25(火) 11:42:07 ID:???] >>309 モデルのメソッドの中に都道府県データをいれて 呼び出してもOK? もしくはDBからひっぱる、それ以外に方法はわからない
311 名前:nobodyさん mailto:sage [2008/03/25(火) 11:44:21 ID:???] データ量の多い定数なら、別ファイルにして 呼び出すときにモデル経由でincludeして呼び出すのがいいのかな
312 名前:nobodyさん mailto:sage [2008/03/25(火) 12:29:56 ID:???] >>309 > spyc重くね? 書くのはYAMLでもキャッシュとしてPHPのシリアライズデータに 変換してそれを読み込むから重くない。
313 名前:nobodyさん mailto:sage [2008/03/25(火) 12:34:26 ID:???] >>298 ケーキを使っている以上ケーキ様の言うことは絶対です。 コンポーネントにいろいろ書くとどれだけテストが大変になるか。
314 名前:nobodyさん mailto:sage [2008/03/25(火) 12:38:32 ID:???] >>308 > 男性・女性・オカマとか これじゃ足りないな。 現在の肉体的性別 男・女 生まれたときの肉体的性別 男・女 現在の精神的性別 男・女 生まれたときの精神的性別 男・女 好きな性別 男・女・両方・肉体が男・肉体が女 まだ足りないかもな!
315 名前:nobodyさん mailto:sage [2008/03/25(火) 13:04:07 ID:???] >>313 再利用できないものは コントローラーにいろいろ書くしかない ケーク様が何も用意してくれてないから
316 名前:nobodyさん mailto:sage [2008/03/25(火) 13:06:05 ID:???] >>298 の言ってる事はともかく >>313 はAuthComponentのソース見た事あるのかな
317 名前:nobodyさん mailto:sage [2008/03/25(火) 16:31:35 ID:???] コンストラクタでぐにょぐにょしたいときは コンストラクタ内で先に parent::__construct(); を呼ばないとダメだよ なぜ?て それは>>318 が答えてくれるはず
318 名前:nobodyさん mailto:sage [2008/03/25(火) 17:10:42 ID:???] うんこちんちん
319 名前:nobodyさん mailto:sage [2008/03/25(火) 17:42:53 ID:???] こんなに、解釈によって作り方が変わって来ちゃうなら、フレームワークの「良い意味での縛り」のメリットが無いね。 それぞれが間違いとも正解とも言えないから余計めんどくさい。 もっと縛りがキツければ良いのに。
320 名前:nobodyさん mailto:sage [2008/03/25(火) 18:12:31 ID:???] >>319 バカがルールを勘違いしてるだけwww
321 名前:nobodyさん [2008/03/25(火) 18:24:02 ID:Qe2AafnS] ビヘイビアのうまい使い分けがわかんないー Emailコンポーネントと連携して"emailable=1"を判別してメールするビヘイビアだとか、 ソフトデリート(=削除フラグ=1を削除)を実装したビヘイビアとかのサンプルは目にした んだけど、もっと実践に役立つ使い道ってどんな風なの??
322 名前:nobodyさん mailto:sage [2008/03/26(水) 01:26:50 ID:???] 俺が作っているやつでは、「自動入力フィールド」をビヘイビアでやっている。 ユーザーが入力した情報を加工したものを別フィールドに自動的に保存する。 データベースのセオリーからいえば計算で求められる物なのでビューやトリガーを使うところだが、 パフォーマンスを重視&汎用性を高めるためにこうしている。 あとどこかでぐぐって見つけた画像を保存するビヘイビア。 あるテーブルに保存したら、自動的にほかのテーブルにメタ情報を保存するビヘイビア つまりトリガーの代わりだね。 文字コード変換ビヘイビア 仕様が変わって使っていないが、一つのフィールドに複数の値を入れられる配列型フィールドを作るビヘイビア。 (一対多のテーブルを作れというなよ?そんなJOINが発生する重い処理を作りたくないこともあるんだ。 SQL99 で標準規格化されたしね。)それの応用でオブジェクト(シリアライズ)型 それともうひとつあるのだが、これはちょっとアイデア賞物だと思うので自分のブログで書きたいw 結構いろいろ使っているなw 総論としてデータベースの機能を拡張したいときに使っている。
323 名前:nobodyさん mailto:sage [2008/03/26(水) 02:10:48 ID:???] >>322 日本語でおk あいかわらず文章下手糞やなw 単純なことをわかりにくい表現するの好きやな 前スレから全く変わってねーな
324 名前:nobodyさん mailto:sage [2008/03/26(水) 02:19:26 ID:???] >>322 結局cakeライブラリのモデルで実装されてる機能を少し拡張したいときに ビヘイビアにいれてるんでしょ?
325 名前:nobodyさん mailto:sage [2008/03/26(水) 02:29:03 ID:???] >>322 ユーザーが入力した情報を加工したものを別フィールドに自動的に保存する。 この自動的て具体的にどういう意味?
326 名前:nobodyさん mailto:sage [2008/03/26(水) 02:34:57 ID:???] >>322 ユーザーが入力した情報を加工したものを別フィールドに自動的に保存する。 これは前スレで自作ヘルパーでやってなかったか? パフォーマンスを重視&汎用性を高めるというのに具体的内容が欲しい
327 名前:nobodyさん mailto:sage [2008/03/26(水) 02:40:36 ID:???] >>322 一つのフィールドに複数の値を入れられる配列型フィールド SNSのような大規模サイトでもこれ使う機会なんて滅多にないんだが、何作ってんの?
328 名前:nobodyさん mailto:sage [2008/03/26(水) 03:04:09 ID:???] >>322 配列型フィールドて mysqlでも検索や集計はできるの?
329 名前:nobodyさん mailto:sage [2008/03/26(水) 03:06:22 ID:???] >>322 配列型フィールドを使わない人にとっては 激しく必要のないビヘイビアじゃね?
330 名前:nobodyさん mailto:sage [2008/03/26(水) 03:12:41 ID:???] >>322 それともうひとつあるのだが、これはちょっとアイデア賞物だと思うので自分のブログで書きたいw 恒例自慢きたこれw
331 名前:nobodyさん mailto:sage [2008/03/26(水) 03:36:11 ID:???] なんだこの過剰反応ぶりw みるからに同一人物のようだが、 ただの使用例に必死すぎだろw
332 名前:nobodyさん mailto:sage [2008/03/26(水) 03:41:59 ID:???] ○○○を使わない人にとっては 激しく必要のない○○○じゃね? なんにでも当てはまるなw 無理やり反論しようとして滑ってる。
333 名前:nobodyさん mailto:sage [2008/03/26(水) 03:47:41 ID:???] >>331 >>332 同一人物乙
334 名前:nobodyさん mailto:sage [2008/03/26(水) 03:51:47 ID:???] 確かに同一人物だが、それが何か?
335 名前:nobodyさん mailto:sage [2008/03/26(水) 04:15:24 ID:???] >>333 cakephpとは外れたこと書くな
336 名前:nobodyさん [2008/03/26(水) 04:38:16 ID:pkIggipT] CakePHPで開発するアプリを設計する際にUMLで書いてる人いる? シーケンス図やクラス図なんかどんな風に記述してるかとか見せてもらえると 参考になります。
337 名前:nobodyさん mailto:sage [2008/03/26(水) 04:51:55 ID:???] >>336 UMLを使うと従来の方法より効率が落ちる時もある。 なぜなら、従来なら手書きで適当に書いてきた図をUMLでどうやって書けばいいのか調べなければならないから。 書き方が全部頭の中に入った後でなら従来よりスムーズに開発ができるようになるかもしれない が、しかし、それまでは相当の苦労が必要w オブジェクト指向開発とUMLとはまた別の話でUMLはオブジェクト指向開発の道具にすぎない
338 名前:nobodyさん mailto:sage [2008/03/26(水) 04:59:22 ID:???] >>336 UML?時間の無駄だろ。そんなん書いてたら 工数オーバーするしで誰も喜ぶもんおらんで
339 名前:nobodyさん mailto:sage [2008/03/26(水) 05:04:03 ID:???] C#やJAVAならわかるけどPHPでUMLて そんなクラスが複雑じゃないやん
340 名前:nobodyさん mailto:sage [2008/03/26(水) 05:24:25 ID:???] そういう問題じゃねーだろw
341 名前:nobodyさん mailto:sage [2008/03/26(水) 10:28:27 ID:???] >>339 確かにphpでUMLてぐぐったけどあまり無いな
342 名前:nobodyさん mailto:sage [2008/03/26(水) 10:50:05 ID:???] そりゃぐぐったことが無いという人もいるだろう。 だがそれは個人の話であって統計的な意味は無い。 検索結果のほうがまだ意味があるな PHP UML の検索結果 約 957,000 件中 1 - 10 件目 (0.03 秒) Java UML の検索結果 約 593,000 件中 1 - 10 件目 (0.04 秒) C# UML の検索結果 約 404,000 件中 1 - 10 件目 (0.04 秒)
343 名前:nobodyさん mailto:sage [2008/03/26(水) 11:29:28 ID:???] Cakephpと関係ない話すんなやボケどもが
344 名前:nobodyさん mailto:sage [2008/03/26(水) 11:31:39 ID:???] なんでCakePHPにUMLの話が出るのかわからんw
345 名前:nobodyさん mailto:sage [2008/03/26(水) 11:37:41 ID:???] >>340 そういう問題だろw
346 名前:nobodyさん mailto:sage [2008/03/26(水) 11:58:29 ID:???] 俺はJavaをメインでやってるけどUMLは 複雑になってくるクラス間の関連性の構造の手助けとしてUMLを活用することが多い だから>>339 のいってるように複雑なクラスで無ければ必ずしもUMLが必要とは思わない
347 名前:nobodyさん mailto:sage [2008/03/26(水) 12:17:07 ID:???] ユースケースは必ず書くけど、シーケンスみたいな実装よりの奴は 実装者が未熟な場合か、処理が複雑なときだけかな。 クラスダイアグラムはモデル限定でこれもテーブル構成が複雑なときだけ。 ユースケースは文書に起こして仕様書にするので必須。 PHPのクラスを自動生成してくれる奴なかったっけ? あれでCakeのモデルを自動的に管理してくれると楽かも...楽じゃないかw
348 名前:nobodyさん mailto:sage [2008/03/26(水) 12:24:40 ID:???] UMLのクラス図ってようするに継承関係と関数定義(実装コード無し)を 書いているだけでしかないからなぁ。 それならコードで書いてコードからクラス図を自動生成したほうが楽。
349 名前:nobodyさん mailto:sage [2008/03/26(水) 12:38:45 ID:???] Javaだとクラスが複雑になってしまうんだよね。 正確にはEJBを使った場合だが、同じものを作るにしても 無意味に複雑になりすぎる。 あれじゃあ、UMLが必要になるのもわかる。
350 名前:nobodyさん [2008/03/26(水) 13:44:26 ID:ktIW9Uv7] ちょwww おまえら設計書も書かずに開発しちゃってるのかよ、涙がでるな。 それだから「できました」とかいいながらテストしたらバグ出まくりのプログラムなんか量産しちゃうんだよwwww UMLじゃなくてもいいが、実装前に詳細なロジックを書き起こしてからコードつくるのは常識だろ。 時間がかかる、めんどくさい、頭の中にもう仕様書書いてあるから、という奴に限ってたいした技術力じゃないんだよな。 設計書ってのはコーディング作業が楽になるだけでなく、チーム関係者との意識共有や、リリース後しばらくたってメンテが必要になった時に効果がでるもんだぜ。 プロとして仕事でやってるならば当たり前だと思ってるが、ここにはプロはいないのか?
351 名前:nobodyさん mailto:sage [2008/03/26(水) 14:32:19 ID:???] 楽譜の読めないミュージシャンもいるしな。
352 名前:nobodyさん mailto:sage [2008/03/26(水) 15:25:48 ID:???] >>350 実装前に詳細なロジックを書き起こしてからコードつくるのは常識だろ それお前だけの常識乙w CakePHPのような小規模案件に無理があるぞお前w
353 名前:nobodyさん mailto:sage [2008/03/26(水) 15:29:27 ID:???] >>350 どこの大手で働いてんだよCakePHPさわってる分際でw
354 名前:nobodyさん mailto:sage [2008/03/26(水) 15:34:17 ID:???] >>350 CakePHPでいくらも稼げてねーくせにw
355 名前:nobodyさん mailto:sage [2008/03/26(水) 15:37:50 ID:???] 短納期で回転させるのがCakePHPのメリットなのに わざわざUMLとか工数伸びるだけやんけ そんなんで、ほんまに黒字になってんのかw
356 名前:nobodyさん mailto:sage [2008/03/26(水) 15:41:14 ID:???] >>350 スレ違いながら言わせてもらうと・・ 実際、開発しながら見えてくる事って多いよね。 キチンと設計や仕様固めが出来ないまま、見切りスタートを切ってしまうことも多々。 問題は、その仕様の追加、変更に対応出来るように設計する事だよ。
357 名前:nobodyさん mailto:sage [2008/03/26(水) 16:12:51 ID:???] そうなんだーUMLって書かないんだ。 俺は書き方すら知らないけど。 作る前に一応メモに何をどうするかを書き出して、その通りに作ってくね。 あまりに自分の頭の中だけで作ると変数とか何を使ったかわからなくなったり。 イラレで仕様書とか作るのが激しくめんどい。 よって手書きで自分はやってます。
358 名前:nobodyさん mailto:sage [2008/03/26(水) 16:15:44 ID:???] >ここにはプロはいないのか? w
359 名前:nobodyさん mailto:sage [2008/03/26(水) 17:32:25 ID:???] え…設計フェーズ飛ばしていきなりコーディングに入るの?ギャグだろ? 最低限、要求定義書とユースケースとビジネスロジック(=モデル)の関係図とそれを基にしたスキーマ設計位は必要じゃねーの 打ち合わせ段階で作りまくるじゃん、そんなの どやってクライアントのイチャモンに対応してるの? >>357 イラレで仕様書とか正気?
360 名前:nobodyさん mailto:sage [2008/03/26(水) 17:56:28 ID:???] パワポが激しくめんどくさい。 よって俺もexcel&イラレだな。
361 名前:nobodyさん mailto:sage [2008/03/26(水) 17:58:19 ID:???] まあ、コーディング前の設計は 概要みたいなもんだからね。 たとえば関数をすべてコーディング前に列挙できるかといったらまず不可能 プロのプログラマはコードで設計するんだよ。 鉛筆で図を書くか、キーボードでコードで書くかの違い。
362 名前:nobodyさん mailto:sage [2008/03/26(水) 18:01:13 ID:???] プロはソースにたくさんコメントを残す。
363 名前:nobodyさん mailto:sage [2008/03/26(水) 19:04:34 ID:???] ×プロはソースにたくさんコメントを残す。 ○プロはソースに意味のあるコメントを残す。
364 名前:nobodyさん mailto:sage [2008/03/26(水) 20:37:18 ID:???] >>359 もっとプログラマと交流深めた方がいいよ
365 名前:nobodyさん mailto:sage [2008/03/26(水) 20:39:13 ID:???] >>359 どんだけ狭い世界観なんだよ
366 名前:nobodyさん mailto:sage [2008/03/26(水) 21:07:55 ID:???] 10分以内( ´,_ゝ`)
367 名前:nobodyさん mailto:sage [2008/03/26(水) 21:55:41 ID:???] >>364 この人、確実に嫌われてるだろうな、プログラマに。
368 名前:336 [2008/03/27(木) 00:00:03 ID:d9lPRB8S] >>336 です 意外と盛り上がっててびっくり…
369 名前:nobodyさん mailto:sage [2008/03/27(木) 01:42:38 ID:???] >>359 イラレで仕様書は普通。
370 名前:336 [2008/03/27(木) 02:53:28 ID:d9lPRB8S] >>369 マジかよ。それなんてイラレ?
371 名前:nobodyさん mailto:sage [2008/03/27(木) 11:48:14 ID:???] たとえばフォームにある省略可能な数値型の項目に 値を省略して(空文字で)データベースに保存した場合空文字でINSERTされる。 このときのどう保存されるか動作はデータベース依存であり MySQLは0になり、PostgreSQLはエラーになる。 https://trac.cakephp.org/ticket/4233 チケットが出ていたみたいだが、修正無しでクローズ? これ直る見込みないんかいな。確かに空文字とNULLは違うものだが 「データベースの省略可能な数値フィールド」ってのは 数値とNULLしか入れられないんだよね。 どうせNULLが入ったフィールドをModelから読み込むと 空文字になるんだし(あってるよね?) NULLに変換して保存したほうが実用的だと思うんだけどなぁ。 データベース間の違いも吸収したほうがいいし。 beforeSaveあたりで書き換えるか・・・
372 名前:nobodyさん mailto:sage [2008/03/27(木) 15:25:42 ID:???] >>371 それはCakePHPに限ったことでは無いから死んでこい
373 名前:nobodyさん mailto:sage [2008/03/27(木) 15:27:34 ID:???] >>371 そんなどうでもいい作業するくらいなら コンビニでバイトするよ
374 名前:nobodyさん mailto:sage [2008/03/27(木) 17:50:07 ID:???] CakePHPのアソシエーションでBelongsToやhasOneを渡り歩いて 広範囲のテーブルから値を持ってくるにはどうすればいいんでしょうか SQLならLEFTJOINを繋げて行けば済むのですが 単純にrecursiveを増やしていくとクエリの量が異常に増えて困っています
375 名前:nobodyさん mailto:sage [2008/03/27(木) 19:31:16 ID:???] 最近低レベルの煽りしか返さない奴がいるなウザイ。 どうせ同一人物だろうからトリップつけてくれ。削除すっからさ。
376 名前:nobodyさん mailto:sage [2008/03/27(木) 19:48:23 ID:???] >>375 低レベルの質問しかないから仕方ないこと
377 名前:nobodyさん mailto:sage [2008/03/27(木) 19:51:40 ID:???] >>374 リファレンスみろよ こんなとこで聞くなカス
378 名前:nobodyさん mailto:sage [2008/03/27(木) 20:14:15 ID:???] >>376-377 だからトリップつけろってw
379 名前:nobodyさん mailto:sage [2008/03/27(木) 21:54:01 ID:???] >>377 アソシエーションが直接繋がっている関係なら資料は山ほどあるのですが 例えば4テーブル先まで繋がっているデータを手繰り寄せてくる場合、デバッグ情報を見ると 一旦findで取得してきた配列をforeachで回して一つ一つまたfindを使っているように見えます 結果、データ自体は取ってこれるもののSQLの発行数が異常な量になってしまいとても使う気になれません SQLの発行を抑えつつもアソシエーションを柔軟に広げるためには、自前でqueryを使うしかないのでしょうか?
380 名前:nobodyさん mailto:sage [2008/03/27(木) 22:01:13 ID:???] ユニットテストでfixturesの機能使っている人いる? var $fixtures = array(〜〜〜); こんな感じでfixturesをしているわけだけどさ、 なんかテーブルの生成のタイミングとか変じゃない? テストを単体で実行すると問題なく動くんだけど、 すべて実行するとテーブルが無いとか言われることがある。
381 名前:nobodyさん mailto:sage [2008/03/27(木) 23:06:17 ID:???] >>370 adobe社のイラレだと思うけど。 >>375 わかる。人をバカにしてばっかだよな。あおってるやつ。 見てて気分悪い。 >>376 >>377 リファレンス見てわかるならそのURL教えてあげようよ。 しかも、聞いてる 374 はある程度知識あると思うよ。 もうちょっと人を思いやる気持ちを持とうよ。
382 名前:nobodyさん mailto:sage [2008/03/27(木) 23:10:00 ID:???] >>372 まず、おまえがシネ
383 名前:nobodyさん mailto:sage [2008/03/27(木) 23:23:59 ID:???] >>379 質問の内容があまりにも素人すぎ CakePHPばかにしてんのか?
384 名前:nobodyさん mailto:sage [2008/03/27(木) 23:25:34 ID:???] 誰も馬鹿にしてないから答えろよw
385 名前:nobodyさん mailto:sage [2008/03/28(金) 00:13:02 ID:???] 人をバカにすることで自分が上に立ったような感覚を味わいたいんだろうな 残念なやつが多い >>379 その4テーブルはどんなリレーションなの? で、今はどんなアソシエーションを記述してんの? もしかしたらDB設計が悪いという可能性もある。
386 名前:nobodyさん mailto:sage [2008/03/28(金) 00:51:53 ID:???] >>385 各フレームワークの評価目的でプロトタイプを作っていますので 特定のテーブルの再設計で問題を解決するアプローチでは応用範囲が非常に限られてしまいます 申し訳ありませんがCakePHP側での解決を求めています 例えばごく単純にモデルが A→B→C→D とbelongsToで数珠繋ぎにアソシエーションが設定されている場合 AのリストにB〜Dのデータを動的に付加して取得したいとすると どのような指定をすればよいのでしょうか SQLならJOINをただ書き連ねていけばいいのですが
387 名前:nobodyさん mailto:sage [2008/03/28(金) 01:28:45 ID:???] >>386 CakePHPさわってどれくらい? あまりにも初心者的な質問やめてくれる
388 名前:nobodyさん mailto:sage [2008/03/28(金) 01:30:56 ID:???] スレ分けて欲しいな。CakePHP初心者スレ作ってよ
389 名前:nobodyさん mailto:sage [2008/03/28(金) 01:42:40 ID:???] >>386 初心者が他人の力借りて簡単にCakePHP評価しようなんて CakePHPなめすぎだろ? 自分で死ぬ思いでググれボケ
390 名前:nobodyさん mailto:sage [2008/03/28(金) 02:37:39 ID:???] >>386 できそうにない。 https://trac.cakephp.org/ticket/2931 上で同じようなこと言ってたけど対応なしにcloseされた模様。 https://trac.cakephp.org/ticket/4277 上も同様のことを言ってる。3週間ほど前。 >>377 >>383 >>387 >>388 >>389 俺もこれの具体的な解決方法を知りたいです。どうか教えてください。
391 名前:nobodyさん mailto:sage [2008/03/28(金) 02:57:36 ID:???] >>390 CakePHPの知識全くないくせに英語力を自慢がしたいの?
392 名前:nobodyさん mailto:sage [2008/03/28(金) 03:06:49 ID:???] >>390 >>371 ここにいる馬鹿どもが、みんな英語わかると思ってんのか?w さりげなくバカにしてるだろ
393 名前:nobodyさん mailto:sage [2008/03/28(金) 03:20:48 ID:???] >>390 今調べて出来そうにないって。こういうケースはじめてなの? 経験浅すぎじゃね。1つのサイトをCakePHPで完成させたことないやろ
394 名前:nobodyさん mailto:sage [2008/03/28(金) 03:22:38 ID:???] >>391 いや、これに関しての日本語の情報がなかなか見つからなかったから英語の記事を探さざるを得なかっただけ。 で、CakePHPの知識がある人はこれをどうやって解決してるんでしょうか?
395 名前:nobodyさん mailto:sage [2008/03/28(金) 03:31:35 ID:???] >>390 どうして、できそうにないか具体的に日本語で説明しろ。わかったな命令だ
396 名前:nobodyさん mailto:sage [2008/03/28(金) 03:56:27 ID:???] このスレ、なんか冗談だと思えるくらい殺伐としてんな w
397 名前:nobodyさん mailto:sage [2008/03/28(金) 06:59:33 ID:???] >>396 何でだかアンチが混じっている。 で、cakePHPは重いとか、質問者を叩いたり。 無視推奨。 つか、アンチしてる人、cakePHPを無視すればいいのにね。
398 名前:nobodyさん mailto:sage [2008/03/28(金) 08:46:16 ID:???] 英語のサイト貼りつけて叩かれるのは初めて見たw 日本のサイトで分からなければ、海外サイトくらい見るだろ。 分からなければWeb翻訳すればいいんだしな
399 名前:nobodyさん mailto:sage [2008/03/28(金) 09:18:10 ID:???] 粘着気質で知性もないとか救いようがないな。 トリップの付け方も知らないらしいし、ほんと終わってんな。w
400 名前:nobodyさん mailto:sage [2008/03/28(金) 09:20:55 ID:???] なんだこの流れ とてつもないバカが何人かいるな
401 名前:nobodyさん mailto:sage [2008/03/28(金) 09:29:46 ID:???] >>390 まさしくそのtickets通りです CakePHPは隣り合ったアソシエーション間ではJOINを繋いでSQLワンコールに最適化してくれますが それ以上のテーブルをまたいだ関係を持とうとすると途端にクエリ量が増えてしまいます 個人的にrecursiveでアソシエーションの深度を指定する考え方は 好感が持てるのですが、負荷の高さを考えると使用をためらわざるを得ません サブクエリをインテリジェントに挿入しろとは言いませんが 今回の様な使用頻度の高いと思われる(かつ、割と実装の想像しやすい)処理ならば 既に解決された方がいらっしゃるのかと質問に至りました -- 先ほどContainableBehaviorを試してみましたがクエリ量は変わりませんでした やはりコアに直接手を加えないといけないようですね(´・ω・`)
402 名前:nobodyさん mailto:sage [2008/03/28(金) 10:01:46 ID:???] A→Bのクエリ発行したときに モデルにB→Aのアソシエーションも記述してあると B→Aのクエリも発行される だから A→B→C→D のようなのをそのままやっちゃうと えらいことになる だから、いらいないアソシエーションはunbindModelでぶった切る あと、1.2だと発行クエリが1.1より最適化されている (つまり、少なくなってるってこと)
403 名前:nobodyさん mailto:sage [2008/03/28(金) 10:11:39 ID:???] >>397 明らかにアンチじゃない奴のほうがたち悪いぞ。質問者叩いてるのもそう。 >>402 >>401 の問題解決にはならないんじゃない。B->Aのアソシエーションがなくても起こるから。 >>401 DBにview作れば早いと思うよ。
404 名前:nobodyさん mailto:sage [2008/03/28(金) 10:15:32 ID:???] 質問があまりにもバカすぎて・・・ レベル低いよな。 ここでアフォみたいな質問してるやつは CakePHPでサイト構築したことあるのかと聞きたいよ
405 名前:nobodyさん mailto:sage [2008/03/28(金) 10:19:27 ID:???] あまりにもバカみたいな質問にバカみたいな回答が多すぎ もっと常識レベルでの会話して欲しいな 駄文ばっかで何の役にも立たないよ
406 名前:nobodyさん mailto:sage [2008/03/28(金) 10:27:40 ID:???] >>405 それそのまま>>405 に当てはまるのわかる?
407 名前:nobodyさん mailto:sage [2008/03/28(金) 10:30:15 ID:???] もっと常識的な質問たのむ
408 名前:nobodyさん mailto:sage [2008/03/28(金) 10:36:03 ID:???] かわいそうに
409 名前:nobodyさん mailto:sage [2008/03/28(金) 10:57:56 ID:???] バッチ処理で長くかかる処理をやるのなら話は別だけど ウェブアプリなんて画面に表示する少ないデータを 表示するだけなんだからJOINしなくてもいいと思うんだけどね。 どうせ複雑なJOINならJOINするのにも負荷かかるわけだし。 ま、パフォーマンスと開発効率のトレードオフ。 どうしても必要なら、モデルに専用の検索メソッドでも作って 自分でクエリー書けばいいんじゃない?
410 名前:nobodyさん mailto:sage [2008/03/28(金) 11:00:25 ID:???] もっと常識的な質問たのむ
411 名前:nobodyさん [2008/03/28(金) 11:03:37 ID:q/btZ3WH] アンチがしつこくネガティブキャンペーンするのも CakePHPが人気になって普及してきた証拠かなぁw アンチじゃない人はIDだすようにするか? そうすればID出していない人はアンチってわかるし。 出したら出したで削除できるしw
412 名前:nobodyさん mailto:sage [2008/03/28(金) 11:10:07 ID:???] アンチを勘違いしてると思うが いい質問には、マナーをもって接するが ろくでもないレスばっかりだからな
413 名前:nobodyさん mailto:sage [2008/03/28(金) 11:13:12 ID:???] >>411 自治厨乙。 だいたいにして、IDなんていつでも変えれるんだから意味ないじゃん。
414 名前:nobodyさん mailto:sage [2008/03/28(金) 11:14:01 ID:???] ろくでもないレスは無視するかマナーをもって 訂正を促すのが良い返答の仕方だよ。
415 名前:nobodyさん [2008/03/28(金) 11:14:44 ID:q/btZ3WH] >>413 やってみなきゃわからないじゃんw
416 名前:nobodyさん mailto:sage [2008/03/28(金) 11:17:51 ID:???] >>415 どんだけ必死なんだよw
417 名前:nobodyさん [2008/03/28(金) 11:57:59 ID:anJTbKap] >>409 もちろん速度を重視しなくてはならない場面ならば専用メソッド内でSQLを書きます しかし、上記の様にシンプルなアソシエーションすら動作が怪しいとなると フレームワーク自体に手を出して最適化させた方がコスト的にベターかなと思います >>403 複雑なアソシエーションのパターンが出来上がってる時はView使った方がいいですね 今ふと考え付いたのですが、結合済みの仮想テーブルを作って、それを元に CakePHP側のモデルを構築するアプローチは面白いかもしれません #仮想テーブルへの更新作業はDB依存のため怪しい臭いはしますが
418 名前:nobodyさん mailto:sage [2008/03/28(金) 12:20:53 ID:???] >>417 負荷を考えるならフレームワークやめろ CakePHPなんてのは、どうでもいいクライアントに高速納品するための道具てことに気づけよバカ
419 名前:nobodyさん mailto:sage [2008/03/28(金) 12:26:48 ID:???] >>417 今頃フレームワークの評価とか手を出すとか、どんだけ遅れてんだよ この業界は進歩が早いの知ってる?
420 名前:nobodyさん mailto:sage [2008/03/28(金) 12:43:39 ID:???] >>417 > 結合済みの仮想テーブルを作って、それを元にCakePHP側のモデルを構築する view作ればって言ったのはそういうこと。 面白いかどうかはおいといて、現状の打開策としてはアリかなと思うわけです。 > 仮想テーブルへの更新作業はDB依存のため怪しい臭いはしますが このDB依存は仕方ないと割り切ればいいんじゃないかな。割り切れるところだと思うし。
421 名前:nobodyさん mailto:sage [2008/03/28(金) 12:49:51 ID:???] >>417 やる前にあれこれ聞かずにやってみろよ こんなとこで解決できれば苦労しねーよクソが
422 名前:nobodyさん mailto:sage [2008/03/28(金) 12:53:20 ID:???] 評価なんてソース解析して自分で実際にサイト構築しないとわからねーよ やってくうちに想像しない難点が沢山でてくるよ
423 名前:nobodyさん mailto:sage [2008/03/28(金) 13:01:42 ID:???] >>417 速度重視とか柔軟性考えるならCIにしろや
424 名前:nobodyさん mailto:sage [2008/03/28(金) 13:04:47 ID:???] CakePHPを最適化させにくいフレームワーク 最適化したいならCIスレにいって、このスレからでていけや
425 名前:nobodyさん mailto:sage [2008/03/28(金) 13:28:19 ID:???] >>420
426 名前:nobodyさん mailto:sage [2008/03/28(金) 13:34:05 ID:???] っていうかJOINにならないというのは どのフレームワークでも同じこと。 CIでもSymfonyでもRubyOnRailsでも同じだよ。 特にCIは最悪だね。いろんな意味で。 ここではすれ違いだから言わないけど。
427 名前:nobodyさん mailto:sage [2008/03/28(金) 13:40:13 ID:???] >>426 どのフレームワークも同じなら軽量でサクサク動作するCIの方がマシ
428 名前:nobodyさん mailto:sage [2008/03/28(金) 13:44:02 ID:???] >>417 > しかし、上記の様にシンプルなアソシエーションすら動作が怪しいとなると シンプルではないよ。 CakePHPでもその他でもそうだけどO/Rマッピングというのは 従来の表形式の使いづらいリレーショナルデータベースを 高レベルに扱いやすく使えるようにするもの。 リレーショナルデータベースを基本に設計されたものではなく より理想的なオブジェクト指向風なデータ構造をもとに設計されたもの。 だからいろんな取り出し方ができる出来る柔軟性がある。 たとえば、behaviorでデータ挿入・取り出し時に色んな処理をかませられる。 そういう柔軟性を持たせながらシンプルなSQLに置き換えるのは容易ではない。 不可能な場合すらある。 なんでもかんでもパフォーマンスを気にして無駄なものを作るのは 初心者のやること。一日働いて3万円人件費をかけるのなら、 その3万円でスペックをあげたほうが総合的に考えてメリットが 高いという時代だから、今は。
429 名前:nobodyさん mailto:sage [2008/03/28(金) 13:50:03 ID:???] CIはデータベースを使わない。使う頻度が少ない場合にはいいけど、 データベースを使う場合、貧弱だよな。 あれならSQL直書きした方がいいってほどメソッドがアホらしいしw なによりビヘイビアが無いのが一番痛い。
430 名前:nobodyさん mailto:sage [2008/03/28(金) 13:50:47 ID:???] >>428 なんでもかんでもパフォーマンスを気にして無駄なものを作るのは 初心者のやること サイトリニューアルなど 既存ユーザーが多数いる自社製品ならパフォーマンスを意識する
431 名前:nobodyさん mailto:sage [2008/03/28(金) 13:52:21 ID:???] > 既存ユーザーが多数いる自社製品ならパフォーマンスを意識する マシンスペックを上げろ
432 名前:nobodyさん mailto:sage [2008/03/28(金) 13:54:32 ID:???] >>429 複雑なアソシエーションはSQL直書きになるんならCIが理にかなってる
433 名前:nobodyさん mailto:sage [2008/03/28(金) 13:55:17 ID:???] 複雑なものじゃなくてシンプルにしようと考えような。
434 名前:nobodyさん mailto:sage [2008/03/28(金) 13:55:42 ID:???] >>426 symfony(というかpropel)はJOINになる
435 名前:nobodyさん mailto:sage [2008/03/28(金) 13:56:08 ID:???] >>431 ユーザーが増えるたびに、どんだけマシンが必要になるんだよ
436 名前:nobodyさん mailto:sage [2008/03/28(金) 13:56:12 ID:???] JOIN使わないで一回一回よんでも パフォーマンスはたいして変わんないんだけどなw
437 名前:nobodyさん mailto:sage [2008/03/28(金) 13:57:04 ID:???] >>435 ユーザーが増えると重くなるのはどれでも一緒ですが? 働いていない人は、人件費というコストを計算に入れないからなぁw まあ、がんばれやw
438 名前:nobodyさん mailto:sage [2008/03/28(金) 13:57:54 ID:???] >>436 変わるよ あほか
439 名前:nobodyさん mailto:sage [2008/03/28(金) 13:57:57 ID:???] SQL直書きになる機会が多いならCIがいい
440 名前:nobodyさん mailto:sage [2008/03/28(金) 13:58:21 ID:???] O/Rというのはリレーショナルデータベースからの 脱却に意味があるというのに、今時SQLなんて低レベルなことやるかよw
441 名前:nobodyさん mailto:sage [2008/03/28(金) 13:58:54 ID:???] >>437 ずっと開発してるわけじゃねーからw 人件費とか1回ぽっきりやん
442 名前:nobodyさん mailto:sage [2008/03/28(金) 14:00:15 ID:???] 複雑なSQLならO/Rマッピング使えないじゃん 今のCakePHPなら だったらCIでSQL直書きが最高よ
443 名前:nobodyさん mailto:sage [2008/03/28(金) 14:03:25 ID:???] >>437 重くなりかたが異なってくるんですが? 1回で済む処理を2回のクエリで行ってるとアクセス数が増えたときにクエリ発行数が大きく変わることがわかんない? ほんとにプログラマなのか?まぁ、がんばれや
444 名前:nobodyさん mailto:sage [2008/03/28(金) 14:05:37 ID:???] ぷw 頭固いな。mixiの話とかしらんのかいな mixiでは”高負荷に耐えるためにJOINを使っていない”んだよ。 www.google.co.jp/search?hl=ja&rlz=1T4GGIH_jaJP221JP221&q=MIXI+MYSQL+JOIN+%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&lr=
445 名前:nobodyさん mailto:sage [2008/03/28(金) 14:07:29 ID:???] >>442 使えていますが? JOINが使われないってだけでしょうが。 パフォーマンスに問題が無い場所で、 複雑なSQLを、SQLを書かずに作れる(買いても作れる)CakePHPと、 SQLを書くのと同等の手間をかけなければならないCIでは どちらが優れているかは言うまでも無く、CakePHPですね。
446 名前:nobodyさん mailto:sage [2008/03/28(金) 14:08:18 ID:???] >>441 マシンスペックを上げるのも一回ぽっきりですが?
447 名前:nobodyさん mailto:sage [2008/03/28(金) 14:09:13 ID:???] ビヘイビアがない時点でCIは糞w
448 名前:nobodyさん mailto:sage [2008/03/28(金) 14:11:24 ID:???] >>445 複雑なSQLを、SQLを書かずに作れる(買いても作れる)CakePHP group byとかどうやんの?
449 名前:nobodyさん mailto:sage [2008/03/28(金) 14:12:45 ID:???] >>445 複雑なSQLを、SQLを書かずに作れる(買いても作れる)CakePHP この発言無理がありすぎやろw
450 名前:nobodyさん mailto:sage [2008/03/28(金) 14:13:42 ID:???] >>444 あのさ、読解力なさすぎ。 「高負荷に耐えるためにJOINを使っていない」とは書いてない。
451 名前:nobodyさん mailto:sage [2008/03/28(金) 14:14:14 ID:???] 結局アンチはいつものCI厨だったなw
452 名前:nobodyさん mailto:sage [2008/03/28(金) 14:15:24 ID:???] >>450 ではJOINを使わない理由になんて書いていますか?言ってみてください。
453 名前:nobodyさん mailto:sage [2008/03/28(金) 14:17:30 ID:???] >>452 スケールするためにデータベースを分割し、JOINが使用できなくなったから。
454 名前:nobodyさん mailto:sage [2008/03/28(金) 14:20:13 ID:???] スケールとはパフォーマンスをあげるということです。
455 名前:nobodyさん mailto:sage [2008/03/28(金) 14:21:44 ID:???] うん。だから?
456 名前:nobodyさん mailto:sage [2008/03/28(金) 14:22:38 ID:???] >>455 おまえの負けてことだよ
457 名前:nobodyさん mailto:sage [2008/03/28(金) 14:24:15 ID:???] >>456 あからさまにバカだな。論理的に考えられないんだな。
458 名前:nobodyさん mailto:sage [2008/03/28(金) 14:24:38 ID:???] >>447 1.1使ってる人は真性なる糞ですね
459 名前:nobodyさん mailto:sage [2008/03/28(金) 14:25:14 ID:???] 高負荷に耐えられるパフォーマンスを作り出す為に、 データベースを分割してJOINが使用できなくなった。 負荷を考えるのなら、JOINなんかするより、 マシンに投資してデータベースを分割(当然マシンも増えているはず)して アプリケーションで行ったほうがいいということです。
460 名前:nobodyさん mailto:sage [2008/03/28(金) 14:28:55 ID:???] >>457 さっきまでパフォーマンスの話してたやろうが 論理的な会話してないのお前だろw
461 名前:nobodyさん mailto:sage [2008/03/28(金) 14:31:33 ID:???] 結局CIが最強てことじゃんか
462 名前:nobodyさん mailto:sage [2008/03/28(金) 14:37:17 ID:???] CIはフレームワークを使っているとは思えないほど開発工数がかかる。 データベース部分は、SQLの単語(selectやfromやwhere)を それぞれメソッドに置き換えて実行しないといけない。 なんとビックリw だから糞。
463 名前:nobodyさん mailto:sage [2008/03/28(金) 14:38:23 ID:???] わろたw $this->db->select('title')->from('mytable')->where('id', $id)->limit(10, 20); $query = $this->db->get();
464 名前:nobodyさん mailto:sage [2008/03/28(金) 14:38:41 ID:???] >>459 ただ、「マシンに投資してデータベースを分割(当然マシンも増えているはず)して」が始めからできるわけじゃないんだよね。 だからSQL発行数も含め、パフォーマンスには常に気を遣うわけで。 mixiが今はソフトウェア側でパフォーマンスを気にしてないかっていったらそんなことはないし。 >>460 パフォーマンスの話してるよ。何言ってんの? もう面倒だからお前いいよ。
465 名前:nobodyさん mailto:sage [2008/03/28(金) 14:40:13 ID:???] だからパフォーマンスを重視するところだけ 最適化して、あとは楽で速いコーディングをすればいいじゃんか。 パフォーマンスの基礎だよ?
466 名前:nobodyさん mailto:sage [2008/03/28(金) 14:41:27 ID:???] >>463 これいいね。わかりやすい構文だ CakePHPの find(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,) これに比べれば天と地に差
467 名前:nobodyさん mailto:sage [2008/03/28(金) 14:42:45 ID:???] >>466 引数の数を勝手に増やすなw 最後の引数の意味言ってみろよ。 いえなければ赤っ恥だなw
468 名前:nobodyさん mailto:sage [2008/03/28(金) 14:42:48 ID:???] >>464 おまえ誰だよ?トリップでも番号でもいいから付けろよw
469 名前:nobodyさん mailto:sage [2008/03/28(金) 14:44:26 ID:???] >>463 はPHP4だと $this->db->select('title'); $this->db->from('mytable'); $this->db->where('id', $id) $this->db->limit(10, 20); こうなります。
470 名前:nobodyさん mailto:sage [2008/03/28(金) 14:45:17 ID:???] >>464 名無しで必死にレスしてるようだが 名前に番号でもつけてくれないと 今までどんな発言してんかわかんないんだがw
471 名前:nobodyさん mailto:sage [2008/03/28(金) 14:46:08 ID:???] >>468 どうせトリップつけさせて削除しようって魂胆だろ。 そんな手に引っかかるか。ばーかw
472 名前:nobodyさん mailto:sage [2008/03/28(金) 14:46:42 ID:???] >>469 わかりやすくていいね、さすがCI ヌルヌルフレームワークとは大違い
473 名前:sage [2008/03/28(金) 14:50:37 ID:JUQ1v1x2] $this->flash で出てくるはずのページがIE6だと表示されん。ソースは吐かれてる。 ってことはUTF関係か。
474 名前:nobodyさん mailto:sage [2008/03/28(金) 14:50:44 ID:???] アンチレス繰り返してたら、えらい盛り上がってきた
475 名前:425 mailto:sage [2008/03/28(金) 14:54:55 ID:???] すみません、途中投稿しました >>420 その通りですね。同一アプリケーション内でDBをスイッチする事はありえないので リスクとしては小さいため十分検討できます(一応、PostgreSQL使ってる方は注意です) >>424 CodeIgniterもとてもいいフレームワークだと思います ぜひその情熱で当該スレッドを活性化させて盛り上げて欲しいですね >>428 確かにアソシエーションの自動判別が面倒(無理)という事情は分かります 面倒なSQLを叩かずオブジェクティブにデータセットを取得できる機能が すでに実装されていているのですからそれを使うに越した事はありません この辺りの実装はアプリケーション全体のパフォーマンスに影響するため サーバ増設前の改良を十分に検討できる部分だと思います
476 名前:nobodyさん mailto:sage [2008/03/28(金) 14:54:59 ID:???] 実はアンチを煽って盛り上げさせているというのはナイショだw 見ろ他フレームワーク(特にCI)の静けさを!
477 名前:nobodyさん mailto:sage [2008/03/28(金) 14:56:44 ID:???] >>469 みたいなコードを書くぐらいなら SQLをそのまま書いたほうがいいな。
478 名前:nobodyさん mailto:sage [2008/03/28(金) 15:06:18 ID:???] >>428 すみません >>475 の説明はちょっと意味不明ですね、スルー推奨です
479 名前:nobodyさん mailto:sage [2008/03/28(金) 15:45:01 ID:???] Cakeは糞
480 名前:nobodyさん mailto:sage [2008/03/28(金) 15:54:32 ID:???] aki(ryが本出してるから糞
481 名前:nobodyさん mailto:sage [2008/03/29(土) 07:40:57 ID:???] あの本は確かに糞だったな
482 名前:nobodyさん mailto:sage [2008/03/29(土) 09:07:16 ID:???] あれは本当に酷かった
483 名前:nobodyさん mailto:sage [2008/03/29(土) 15:28:58 ID:???] 文句だけは達者だな
484 名前:nobodyさん mailto:sage [2008/03/29(土) 15:56:30 ID:???] 達者?
485 名前:nobodyさん mailto:sage [2008/03/29(土) 16:10:19 ID:???] このスレはいつも無駄に盛り上がるよな
486 名前:nobodyさん mailto:sage [2008/03/29(土) 16:54:04 ID:???] >>484 ゆとり乙
487 名前:nobodyさん mailto:sage [2008/03/29(土) 17:43:56 ID:???] >>486 ゆとり乙
488 名前:nobodyさん mailto:sage [2008/03/29(土) 20:03:50 ID:???] >>486 ゆとり乙
489 名前:nobodyさん [2008/03/29(土) 22:04:16 ID:t2qvxoud] CakePHPっていいフレームワークだよな
490 名前:nobodyさん mailto:sage [2008/03/29(土) 22:08:25 ID:???] ソース汚いけどな
491 名前:nobodyさん mailto:sage [2008/03/29(土) 22:15:25 ID:???] 最高のフレームワークだね 完璧すぎる
492 名前:nobodyさん mailto:sage [2008/03/29(土) 22:29:55 ID:???] おまいらマインドマップ使ってる?
493 名前:nobodyさん mailto:sage [2008/03/29(土) 22:57:31 ID:???] 30才過ぎるとマインドマップ使わないと トイレ行った後とか今まで何考えてたかさえ忘れる
494 名前:nobodyさん [2008/03/29(土) 23:43:43 ID:VJRoSuRr] なんでマインドマップの話になったか分からないけど、自宅と会社のPCに FreeMindインストール済み。 自宅ではCakePHPのシステム設計に使ってる。 ひとつずつやる事片付けて、終わったブランチに「レ」のアイコン付けるのが 楽しい。
495 名前:nobodyさん mailto:sage [2008/03/30(日) 02:14:14 ID:???] UMLはルール化した図解表現 マインドマップは自由な図解表現
496 名前:nobodyさん mailto:sage [2008/03/30(日) 02:16:24 ID:???] マインドマップで設計し形になったものをUML化する
497 名前:nobodyさん [2008/03/30(日) 02:17:48 ID:xhO/sY7i] んで、UMLで書いた仕様書を投げ捨ててウンコする
498 名前:nobodyさん mailto:sage [2008/03/30(日) 02:19:35 ID:???] CakePHP使ってればUMLもマインドマップも必要ない
499 名前:nobodyさん mailto:sage [2008/03/30(日) 02:26:47 ID:???] 作業途中に仕様的にやばい匂いがしたらマインドマップ使ってる
500 名前:nobodyさん mailto:sage [2008/03/30(日) 02:31:49 ID:???] 問題を解決しやすい方法として 思ったことを、どんどん言葉として書き出す わかってるからと頭の中でしまいこむと、全体的な解決図を結び付きにくくする
501 名前:nobodyさん mailto:sage [2008/03/30(日) 02:45:33 ID:???] 難しい状況を言語化する能力がコミュニケーション能力での重要ポイントだと思う。 もっと言語化するクセつければ、コミュニケーション能力向上になるんじゃないかな
502 名前:nobodyさん mailto:sage [2008/03/30(日) 17:27:12 ID:???] render呼んだ後 すぐexit(); してる?
503 名前:nobodyさん [2008/03/30(日) 20:27:27 ID:3z+xm+ln] >>473 遅レスだが、ソースの頭にBOMを付けたら表示されるようになた。 が、viewのファイルは8Nで保存しておかないと、たまに悪さをするようだ。
504 名前:nobodyさん mailto:sage [2008/03/30(日) 22:06:44 ID:???] >>502 もっと常識的な質問たのむ
505 名前:nobodyさん mailto:sage [2008/03/31(月) 10:30:36 ID:???] >>502 してないよ
506 名前:nobodyさん mailto:sage [2008/03/31(月) 10:59:21 ID:???] >>505 コンポーネントでrenderを呼んだときは exitしないとデフォルトのrenderが最後に読み込まれるよ
507 名前:nobodyさん mailto:sage [2008/03/31(月) 11:00:31 ID:???] cakePHPのテスト環境だけど SeleniumとSimpleTestの組み合わせが最強?
508 名前:nobodyさん [2008/04/01(火) 01:26:52 ID:j0Vrw1hD] >>507 そっちのテストなら、セレニウムだろうと手作業だろうとなんだって良くね? ユニットテストをするのなら1.2から正式対応したSimpleTestって言うだろうけど。 ていうか、テスト駆動開発って面倒ですよね、時間がかかるけど出来上がり安定するのは確かだけど。
509 名前:nobodyさん mailto:sage [2008/04/01(火) 01:34:29 ID:???] 正確にはテスト駆動じゃないけど、 ある程度の規模になったら、ユニットテストをやらないなんて 考えられないよ。 修正があるたびに同じテストなんてやってられない。 それこそ時間がかかる。
510 名前:nobodyさん mailto:sage [2008/04/01(火) 02:09:46 ID:???] Selenium IDE これいいね。これだけでも同じテストする必要がないし なんといってもテストが楽
511 名前:nobodyさん mailto:sage [2008/04/01(火) 12:33:08 ID:???] Yahooが占いコンテンツ制作にCakePHPを採用
512 名前:nobodyさん mailto:sage [2008/04/01(火) 20:20:10 ID:???] なにこの寂びれぶり
513 名前:nobodyさん [2008/04/02(水) 00:32:30 ID:Ldo05SB7] んじゃ、おれがこのスレを潤わせてやるぜ ビヘイビアって使ってる?
514 名前:nobodyさん mailto:sage [2008/04/02(水) 00:38:10 ID:???] >>512 荒らしが去ったので落ち着いただけ。 CakePHPを使って、ようやくサイトを公開できた。 思ったより使いやすいね、CakePHP。
515 名前:nobodyさん mailto:sage [2008/04/02(水) 03:09:53 ID:???] コンポーネント、ビヘイビア、ヘルパーの中では ビヘイビアを一番使うな。 よくよく考えると、ソフトウェアの中心はモデル。 その中心の共通処理なんだからよく使うのは当たり前か。
516 名前:nobodyさん mailto:sage [2008/04/02(水) 11:07:25 ID:???] >>515 ソフトウェアの中心はコントローラー なぜならコントローラーはモデルとビューにも指令を出すが モデルは、たいていコントローラを介してのやりとりになるから そういう考えで行けば、よく使うのはコンポーネントじゃないとおかしい
517 名前:nobodyさん [2008/04/02(水) 11:18:11 ID:Ldo05SB7] >>516 アフォがあらわれた
518 名前:nobodyさん [2008/04/02(水) 11:57:50 ID:KzinrGTW] findCount()で count(distinct hoge) を指定したいのですが それは、findAll() でやるべきなのでしょうか?
519 名前:nobodyさん mailto:sage [2008/04/02(水) 12:05:53 ID:???] うん。アフォだ。ワロタw コントローラなんて所詮インターフェースに過ぎんよ。 実際の処理じゃなくて、ブラウザから引数を受け取って それを少々加工してモデルに渡す。 またモデルから受け取ったデータを少々加工してビューに渡す。 流れとしてはこんな感じだね。 「ブラウザ」→「コントローラ(加工)」→「モデル(実際の処理)」→「コントローラ(加工)」→「ビュー(HTML出力)」 っていうか、このように作らないとテストがしづらいったらありゃしない。 SeleniumやCakeWebTestCaseがあるとはいえ、 コントローラを操作してのテストでは範囲が大きすぎる。 もっと小さな範囲でテストできるようにしないといけない。 一番重要な処理を最小限の大きさ(なるべく他に依存しない)で テストすること考えれば、自然とこうなるはず。
520 名前:nobodyさん mailto:sage [2008/04/02(水) 15:46:57 ID:???] ガソリン安いな〜 これほど自民党の一党独裁の問題点が分かりやすい現象は無いなw
521 名前:nobodyさん mailto:sage [2008/04/02(水) 16:07:32 ID:???] >>519 そうなんだ。だから本にもモデルのテストの方法しか書いてなかったんだ。 モデルよりコントローラーをテストしたいんだけど・・・ってずっと思ってた。 ということは、僕のプログラムの組み方がよくないんでしょうか。
522 名前:516 [2008/04/02(水) 16:33:04 ID:Ldo05SB7] >>515 ,>>121 さきほどはアフォと一言で片付けてしまって申し訳ない、2ch流の愛情表現だと思ってくれ で、>>519 のいうとおりアプリケーションの中心となるビジネスロジックについてはコントローラなどでは なくモデル内で実装するべき。一番大切なテストはビジネスロジックであるわけだし、モデルに集約して (かつコントローラとのインタフェースも疎結合にして)コアロジックを実装することでコアロジックを別システムに 再利用しやすくなるというメリットも受けられる。 なので、コントローラはある意味、テストをしなくても問題ないくらい「薄い」実装にするべきだし、コントローラ 内で繰り返しよく使う処理についてはコンポーネント化してあげたほうが、ユニットテストで品質を保証できるので 良いかと。 こんな感じで考えていますが、どうでしょう?
523 名前:nobodyさん mailto:sage [2008/04/02(水) 16:44:10 ID:???] >>519 Seleniumこれだけあれば、全く十分なんだが これ以外でテストしようとすればコストかかるだけやろ どんくさい作業してんな、赤字やろ?
524 名前:nobodyさん mailto:sage [2008/04/02(水) 16:50:49 ID:???] >>522 だから何ってかんじだが、それがどうしたんだよ リファレンスに書いてあるようなこと、なんで必死に訴えてるのwww
525 名前:nobodyさん mailto:sage [2008/04/02(水) 16:52:59 ID:???] 自演厨きたー。うぜえええ
526 名前:nobodyさん mailto:sage [2008/04/02(水) 16:56:38 ID:???] Seleniumなんかでテストしたら時間(=コスト)がかかるよ。 ブラウザを起動する為、そもそも動作が遅いってのもあるが、 Seleniumだといくつものモジュールが組み合わさった状態で テストするしかないから、どこのバグがあるのか見つけにくい。 またデータの初期化などが出来ない。 途中で内部のデータを調べることも出来ない。 CakePHPにはSimpleTestでブラウザをエミュレートした状態の テストもできるので基本はそれを使ったほうが良い。 Seleniumを使うとしたら、SimpleTestではできない JavaScriptが絡んだ処理のテストぐらいだな。
527 名前:nobodyさん mailto:sage [2008/04/02(水) 16:58:43 ID:???] リファレンスに書いてあるようなことなのだから、 間違いではないということだなw
528 名前:nobodyさん mailto:sage [2008/04/02(水) 17:01:36 ID:???] >>522 アプリケーションの中心となるビジネスロジックて何? どんなロジック? 一番大切なテストてどんなテスト? >>モデルに集約して (かつコントローラとのインタフェースも疎結合にして)コアロジックを実装 プラグインと違うの? >>なので、コントローラはある意味、テストをしなくても問題ないくらい「薄い」実装にするべき モデルとビューに命令出すのに薄い実装なんて物理的に無理 モデルはカラッポでOK
529 名前:nobodyさん mailto:sage [2008/04/02(水) 17:04:44 ID:???] >>526 ブラウザ上でテストするだけなのにモジュールとか関係ないしwww JavaScriptテストやるなら加工しないと出来ないだろwww
530 名前:nobodyさん mailto:sage [2008/04/02(水) 17:05:56 ID:???] >>526 Selenium使ったことないやろ?正直にいえ
531 名前:nobodyさん mailto:sage [2008/04/02(水) 17:08:00 ID:???] SimpleTestの方が時間かかるよ
532 名前:nobodyさん mailto:sage [2008/04/02(水) 17:08:48 ID:???] 内部のデータを調べるようなテスト時間かかるに決まってるやろ
533 名前:nobodyさん mailto:sage [2008/04/02(水) 17:09:00 ID:???] また、例の嵐だな。
534 名前:nobodyさん mailto:sage [2008/04/02(水) 17:09:39 ID:???] とりあえず言っておくけど、CIは糞だから、 糞スレでやってねw
535 名前:nobodyさん mailto:sage [2008/04/02(水) 17:13:49 ID:???] >>532 たしかに!
536 名前:nobodyさん mailto:sage [2008/04/02(水) 17:16:18 ID:???] >>522 日本語でおk
537 名前:nobodyさん mailto:sage [2008/04/02(水) 17:18:56 ID:???] なんか、CI普及の為(?)にわざとアフォなことを言っている気がする。 いや、まて、わざと悪い例を出しているのか? まあ、訂正している俺は考えをまとめられていいけどな。 (そして訂正している文を見て学習する人もいるだろう) > モデルとビューに命令出すのに薄い実装なんて物理的に無理 > モデルはカラッポでOK コントローラが出す命令はすごく小さなものだよ。 モデルに対して、「データ取って来い!」「書き込め!」「削除しろ!」 そして、「複雑な一連の処理をしろ!」 前三つは、CakePHPの自動生成コードでも書いてあるから 簡単にわかると思うけど最後の「複雑な一連の処理をしろ!」を モデルに書くべきってことをわかってない人が多いんだよね。 複雑な一連の処理をコントローラに書いてしまう。悪い例だ。
538 名前:nobodyさん mailto:sage [2008/04/02(水) 17:27:44 ID:???] >>537 テストのことを考えていってんの?俺はテストはブラウザでしかしないからw
539 名前:nobodyさん mailto:sage [2008/04/02(水) 17:29:17 ID:???] テスト中心に設計するならモデルに詰め込めるだけ詰め込めばいいんじゃね
540 名前:nobodyさん mailto:sage [2008/04/02(水) 17:30:57 ID:???] >>537 複雑な一連の処理を具体的に述べよ はなしはそれからだ
541 名前:nobodyさん mailto:sage [2008/04/02(水) 17:32:26 ID:???] where が入るような条件文はモデルに書けばいいの?
542 名前:nobodyさん mailto:sage [2008/04/02(水) 17:33:42 ID:???] >>537 モデルにもっていっていいのは どこからどこまで?
543 名前:nobodyさん mailto:sage [2008/04/02(水) 17:45:27 ID:???] >>537 いくら給料もらってんだよ 俺はPHPプログラマで36万円
544 名前:nobodyさん mailto:sage [2008/04/02(水) 17:53:38 ID:???] モデル上で別のモデルのデータ取得できなくね?
545 名前:nobodyさん mailto:sage [2008/04/02(水) 17:55:24 ID:???] >>542 どこまでをモデルでやるかは結局設計しだいだけど、 >>541 ユーザーがフォームからの条件入力。URL形式での条件入力 、つまりコントローラのアクション関数の引数に入る場合。 その引数をもとにモデルを呼び出すわけだけど、 このときのモデルの関数は汎用的なfind関数でもいいし、 もっと簡単に扱いたければ、モデルに専用の関数を作って呼び出す。 汎用的なfind関数を使う場合には、array('key' => '= ' . $value)なんて 条件データに加工しないといけないよね? これがコントローラの処理。 モデルに専用の関数を作る場合、もっと簡単に使える関数にするね。 もちろんその場合、モデル内部でfind関数を使うことになるだろうし、 そのための条件の加工もモデルに書く。 ユーザーの入力した条件が、POSTでくる場合は、 $this->dataから条件を作り出す所までもうちょっと コントローラでやる仕事が増えるだろう。 それでもコントローラの処理(モデルを呼び出すところまで)はこれだけ。 俺ならこのように作るよ。 あとモデルから戻ってきたデータを、ビューで使いやすいように 単純化するのもコントローラの仕事だね。
546 名前:nobodyさん mailto:sage [2008/04/02(水) 17:59:00 ID:???] >>544 > モデル上で別のモデルのデータ取得できなくね? モデル上で別のモデルのデータを使用したいと思ったとき、 その二つのモデル間には関連性がある。 つまりアソシエーションを定義している。 アソシエーションを定義しているのなら、 モデル内で、別のモデルを呼び出すことが出来る。 Model1の中から、$this->Model2->findAll(); 感じで呼び出せる。
547 名前:nobodyさん mailto:sage [2008/04/02(水) 18:01:31 ID:???] >>545 モデルから戻ってきたデータを、ビューで使いやすいように単純化 数字にコンマ付けたりとか?
548 名前:nobodyさん mailto:sage [2008/04/02(水) 18:02:43 ID:???] >>546 そのやり方はCakePHPで推奨されてる方法なの?
549 名前:nobodyさん mailto:sage [2008/04/02(水) 18:05:48 ID:???] >>546 わざわざアソシエーションするの? いつも結合されて重くなるじゃん
550 名前:nobodyさん mailto:sage [2008/04/02(水) 18:06:46 ID:???] >>547 それは見た目を変えるだけだからビューの仕事だろうね。 モデルから戻ってきたデータとは、汎用的なfind関数の場合、 $data => array( モデル名 => array( フィールド名1 => 値1, フィールド名2 => 値2, フィールド名3 => 値3, ) ) こんな値が返ってくる。もちろん、これをそのまま ビューに渡してもいいんだけど、これじゃあビューで使いにくい! って言う場合加工する。 そんな場合あるのかって? 余り無いだろう。 そう、だからコントローラの仕事は少ない。 モデルから取得した値をビューに渡す$this->set(・・・) は コントローラの仕事ね。
551 名前:nobodyさん mailto:sage [2008/04/02(水) 18:07:42 ID:???] >>549 必要なときにつけたりはずしたりする方法は、何度も既出
552 名前:nobodyさん mailto:sage [2008/04/02(水) 18:11:37 ID:???] >>548 だめなのか?
553 名前:nobodyさん mailto:sage [2008/04/02(水) 18:12:12 ID:???] >>546 なんでモデルでやるの?そのメリットは?
554 名前:nobodyさん mailto:sage [2008/04/02(水) 18:21:49 ID:???] >>553 もちろん、直接関係が無いモデルは別々に アクセスするよ。 モデルというか処理の内容から考えて 一つであるべきと思う場合は一つのモデルでやる。 あと、トランザクションの為のメソッドが モデルにあることも興味深いよね。 一連関係ある処理は一つのモデル内で完結させるものと 考えると、なるほどと思わない?
555 名前:nobodyさん mailto:sage [2008/04/02(水) 18:23:17 ID:???] >>546 モデルは複雑にすべきじゃないよ。な中規模設計したとき アソシエーションで必ず問題起きそう
556 名前:nobodyさん mailto:sage [2008/04/02(水) 18:27:56 ID:???] >>555 その意見はわからないでもないが、 普通にRDBMSを正規化したとき そういう関連(リレーション)は出来るもんなんだが・・・ RDMSを正規化すると複雑になってしまう。それがいやだから それを解決する為に、O/Rがあるんだと思うぞ!
557 名前:nobodyさん mailto:sage [2008/04/02(水) 18:28:26 ID:???] ×RDBMSを正規化したとき ○RDBMSでテーブルを正規化したとき
558 名前:nobodyさん mailto:sage [2008/04/02(水) 18:32:44 ID:???] >>546 ページ数が増えたとき、コントローラを増やすことができるけど コントローラが増えた分モデルを増やすこと出来ないよ。 ひとつのモデルに書くコードが恐ろしく増えるね
559 名前:nobodyさん mailto:sage [2008/04/02(水) 18:34:17 ID:???] また例の馬鹿か?
560 名前:nobodyさん mailto:sage [2008/04/02(水) 18:35:56 ID:???] > コントローラが増えた分モデルを増やすこと出来ないよ。 言っている意味が、よくわからないんだが・・・ 例えコントローラが無くてもモデルは作れるし、 一つのコントローラで複数モデルを扱うことも出来るんだが?
561 名前:nobodyさん mailto:sage [2008/04/02(水) 18:43:36 ID:???] 全てはコントローラに処理を詰め込み過ぎたscaffoldが悪い。 あれがアフォに勘違いを植え込む。
562 名前:nobodyさん mailto:sage [2008/04/02(水) 18:49:12 ID:???] うーん、自動生成のコードとしては、これしかやりようがない所もあるのだろうけど、 コントローラに処理を詰め込みすぎというか、モデルに処理が何も無いのが いけないんじゃないかな? あれじゃ、単にテーブルに直接アクセスするネイティブな関数の 代わりのクラスにしか見えない。 一番、プログラマがいろいろ書くべきなのはモデルなのに。 逆に言えば、いろいろ書かないといけないものだからこそ 自動生成ではモデルに何もないんだろうね。 でもサンプル程度はほしいかも。
563 名前:nobodyさん [2008/04/02(水) 18:53:30 ID:KzinrGTW] debugを1以上にするとHTMLの一番最後に <!-- 0.0012s --> みたいに、生成時間?のコメントがつくんですけど これを付けないようにするにはどうすれば良いんでしょうか? debugは1にしておきたいです。
564 名前:563 mailto:sage [2008/04/02(水) 18:58:51 ID:???] あ、webroot/index.php にありました。
565 名前:nobodyさん mailto:sage [2008/04/02(水) 19:00:37 ID:???] cakephpで作られたオープンソースみても モデルで書かれてる処理はバリデータ関係の関数しかないんだけど code.google.com/p/openflp/
566 名前:nobodyさん mailto:sage [2008/04/02(水) 19:00:38 ID:???] >>564 Do not changeって書いてあるけどねw
567 名前:516,522 [2008/04/02(水) 19:01:23 ID:Ldo05SB7] ん?なんかいろいろゴチャゴチャしてきたけど、結局俺が主張してたことは正しかったのか・ 「複雑な一連の処理」とかビジネスロジックとかって、たとえば俺の場合は ・@日足の株価を取得してRSIを計算する ・A与えられた条件引数に該当する銘柄の証券コード配列を取得(スクリーニング) ・B現在の株価を受け取り、あらかじめ計算しておいた目標価格の条件を満たすか判別 ⇒・更に条件を満たしていれば、買い/売り注文をWEBサービスに投げる処理も「証券会社モデル」(仮称)というDBと連携しないモデルを作成して、HTTP(S)で注文するメソッドを書いてる。 ・C現在の株価を取得する(楽天証券のRSSをDDE接続経由で呼び出すモジュールを別途使用) みたいなアプリが持つほとんどの主要処理を言ってて、これらをモデル(またはビヘイビア)に記述するべきと思うのです。 逆に言えばコントローラは、 ・Cの「現在の株価を取得する」メソッドからの返し値をそのままB「株価と目標を評価し、注文する」メソッドに引渡し仲介する ・ビューからリクエストがあった@などの計算処理をモデルメソッド@に引き渡す ・スクリーニング対象銘柄の証券コードリストを取得し、そのままAのスクリーニングメソッドに引き渡す。 くらいのことしかしていない。人間の世界でいうと「仲介人」かと。
568 名前:nobodyさん mailto:sage [2008/04/02(水) 19:06:54 ID:???] >>565 お前の目は節穴か・・・ ってかこのソースあまりいいとは思えないな
569 名前:nobodyさん mailto:sage [2008/04/02(水) 19:08:08 ID:???] OpenFLP Rails 製のオープンソース版 Fastladder モデル 382steps コントローラー 910steps コントローラーに処理書きまくってるんですが。。。
570 名前:nobodyさん mailto:sage [2008/04/02(水) 19:09:00 ID:???] じゃあ本家railsのソースコードみせてやる
571 名前:nobodyさん mailto:sage [2008/04/02(水) 19:11:13 ID:???] コントローラに処理を詰め込みが正論か非か オープンソース見れば、すぐわかることだからな
572 名前:nobodyさん mailto:sage [2008/04/02(水) 19:15:29 ID:???] オープンソースといってもその質はピンキリだから > じゃあ本家railsのソースコードみせてやる おいっ! railsはフレームワークだ。 もともとビジネスロジックは含まれてない!
573 名前:nobodyさん mailto:sage [2008/04/02(水) 19:18:52 ID:???] >>567 全部コントローラで出来るし それをCakePHPでやる意味がわからんw
574 名前:516,522 [2008/04/02(水) 19:46:05 ID:Ldo05SB7] >>573 あー、「全部コントローラで出来るし」って言ってる時点でプロフェッショなるじゃないことが確定www 議論しても理解できないんだろうな、「できる/できない」ということと「(プロとして)やるべき/べからず」 といった本質的な点をwww コントローラでも全部やろうと思えばできることくらいわかっとるわいwww
575 名前:nobodyさん mailto:sage [2008/04/02(水) 19:58:32 ID:???] >>574 CakePHPでやることじゃないことは確かwww
576 名前:nobodyさん mailto:sage [2008/04/02(水) 21:14:45 ID:???] ビジネスロジックはモデルに集約すべき 議論としては面白い 俺もその辺気になってた まあ俺はbakeしたコードの拡張から入ったクチだから全部controllerに書いちゃうけどなwww
577 名前:nobodyさん mailto:sage [2008/04/02(水) 21:37:43 ID:???] >>576 俺もコントローラに書いてしまったけど、 作り続けていくうちに、なんか無理が出てくるんだよ。 なんでこんなに作りづらいんだ?って思っていたときに このスレにあった、ケーキの絵。あれで悟りを開けた気がする。 あぁモデル中心でやればいいんだって。
578 名前:nobodyさん mailto:sage [2008/04/02(水) 21:58:22 ID:???] >>577 その絵ってどれ?
579 名前:nobodyさん mailto:sage [2008/04/02(水) 21:58:46 ID:???] >>562 モデルに書けって言うけど、何を書くの? 関数で書けばいいの?モデル内のメソッドとして? >>565 の言うとおり、実例も無いし具体的なメリットが分からない。 今のところテストが楽って事はなんとなく分かった。
580 名前:nobodyさん mailto:sage [2008/04/02(水) 22:16:06 ID:???] >>578 これの3ページ目 cakephp.org/files/OCPHP.pdf
581 名前:nobodyさん mailto:sage [2008/04/02(水) 22:19:41 ID:???] > 関数で書けばいいの?モデル内のメソッドとして? モデル = ビジネスロジック用のクラス なんだから、言うまでも無くメソッドだろ
582 名前:nobodyさん mailto:sage [2008/04/02(水) 22:22:03 ID:???] >>580 ありがとう,でもコントローラーよりモデルに重点おけよという一言で済む話かw
583 名前:nobodyさん mailto:sage [2008/04/02(水) 22:26:19 ID:???] >>581 そうすると、どう幸せになれるわけ?
584 名前:nobodyさん mailto:sage [2008/04/02(水) 22:27:49 ID:???] >>583 どう幸せになるかではなく、 どう幸せになりたいか。 貴方はプログラミングする上で、どうなったら幸せだと感じる?
585 名前:nobodyさん mailto:sage [2008/04/02(水) 22:57:59 ID:???] railsはコントローラーに重点を置くようになってるのではなぜ?
586 名前:nobodyさん mailto:sage [2008/04/02(水) 23:14:04 ID:???] >>574 自分の安価間違ってね?516と522で筋が通ってない
587 名前:nobodyさん mailto:sage [2008/04/02(水) 23:53:19 ID:???] >>585 railsでもモデルが一番重要なものですよ。
588 名前:nobodyさん mailto:sage [2008/04/03(木) 00:17:09 ID:???] モデルが一番重要なんてCakePHPだけの話 松本に話したら鼻で笑われたよ
589 名前:nobodyさん mailto:sage [2008/04/03(木) 00:38:13 ID:???] 松本といっても鼻の長いゾウをキャラクターにしている会社の松本だけどなw
590 名前:nobodyさん mailto:sage [2008/04/03(木) 00:48:42 ID:???] でもキリンさんも好きなんだろ?
591 名前:nobodyさん [2008/04/03(木) 10:10:52 ID:Z1Ohe4yI] ビヘイバ話はおわったのか?
592 名前:nobodyさん mailto:sage [2008/04/03(木) 11:26:08 ID:???] Model は特定の環境に依存しない処理を行う部分である。
593 名前:nobodyさん mailto:sage [2008/04/03(木) 12:10:16 ID:???] たとえばの話なんですが、 1.フォームから画像ファイルをアップロード 2.アップロード結果・画像ファイルの不正検知 3.2が成功時、元画像名をmd5したものをuploadsフォルダに保存 4.3のファイル名をimage_fileカラムに格納 という一連の処理があったばあい、 今現在はコントロールとコンポーネントに書いてますが、 モデルとビヘイビアに書くとしたら、 2->バリデータに記述 3->ビヘイビア 4->モデル という感じなんでしょうか?
594 名前:nobodyさん mailto:sage [2008/04/03(木) 12:26:23 ID:???] ビヘイビアて1.2からだろ、 最初から無いってことは必要性が薄いてことだよな
595 名前:nobodyさん mailto:sage [2008/04/03(木) 12:32:04 ID:???] ソースが読みやすければコントローラーで全部書いてもいいし モデルに書いて読みにくくなるなら、書かない方がいい 結局はソースを読みやすくするために分けてるだけの話
596 名前:nobodyさん mailto:sage [2008/04/03(木) 12:32:23 ID:???] 画像アップロードできるビヘイビアあるよ。 正確には画像を保存できるビヘイビアだけどね bakery.cakephp.org/articles/view/actas-image-column-behavior
597 名前:nobodyさん mailto:sage [2008/04/03(木) 12:50:28 ID:???] 結局はソースを見やすくする為にある。 一番見やすいソースとは、なるべく何も書かないこと。 画像をアップロードして保存というのは、本質的には テーブルに画像フィールドを作ってそこに格納することと変わらない。 だからフィールド追加作業以外は、一切処理を変更しないで 作れるというのが一番理想的。 ビヘイビアを使えば、>>596 のようにActsAsにわずかなフィールド情報を 設定して終わりだけど、その他の方法でここまでスマートに作れるかな?
598 名前:593 mailto:sage [2008/04/03(木) 13:32:44 ID:???] >>596-597 ありがとうございます。 こりゃ1.2にチャレンジしなきゃだな
599 名前:nobodyさん [2008/04/03(木) 13:49:15 ID:Z1Ohe4yI] >ビヘイビアて1.2からだろ、 >最初から無いってことは必要性が薄いてことだよな 正確には1.1の頃からビヘイビアのディレクトリは用意されてたんだよな。 おそらく必要性はあったのだけど、1.1.xのステイブル版までに実装できなかっただけなのでは?
600 名前:nobodyさん mailto:sage [2008/04/03(木) 14:22:02 ID:???] railsにはビヘイビア相当になるものが無いんだが、どうして
601 名前:nobodyさん mailto:sage [2008/04/03(木) 15:14:18 ID:???] ビヘイビアてベネズエラにいる俺の愛人と同じ名前だ
602 名前:nobodyさん mailto:sage [2008/04/03(木) 15:38:42 ID:???] >>600 Rubyではmixinという言語機能でビヘイビア相当のことが出来るから。
603 名前:nobodyさん mailto:sage [2008/04/03(木) 17:41:48 ID:???] マニュアル»CakePHPによる開発»Models»Introduction book.cakephp.org/ja/view/67/introduction > Model behaviors provide a way to mix in functionality へぇ、behaviorsはmix-in的な機能を提供するものだったんだ。なるほど。
604 名前:nobodyさん mailto:sage [2008/04/03(木) 18:10:28 ID:???] >>603 きちんとした日本語訳サイトあるのに。。。
605 名前:nobodyさん mailto:sage [2008/04/03(木) 18:23:11 ID:???] >>604 どこに?
606 名前:nobodyさん [2008/04/04(金) 20:03:22 ID:GG6uDHIa] わっふるわっふる
607 名前:nobodyさん mailto:sage [2008/04/05(土) 04:54:50 ID:???] cakeでのMC棲み分け例としては以下がありますよね。 個人的にはいい感じだと思いましたが、どうでしょう? CakePHPを使ったMVC設計のベストプラクティス ttp://www.sooey.com/journal/2008/03/26/717/
608 名前:nobodyさん mailto:sage [2008/04/05(土) 05:21:49 ID:???] MVCモデルのMが重要なのはデータ加工の多いWEBだけのはなしであって MVCモデル全般的な考えではない
609 名前:nobodyさん mailto:sage [2008/04/05(土) 05:24:58 ID:???] データをあまり使う必要のないWINアプリを MVCモデルでわけた場合はCが中心となる
610 名前:nobodyさん mailto:sage [2008/04/05(土) 09:45:41 ID:???] Web用のフレームワークのスレで何言ってんだこいつw
611 名前:nobodyさん mailto:sage [2008/04/05(土) 15:00:48 ID:???] MVCのVが重点となるソフトをあげてみよ
612 名前:nobodyさん mailto:sage [2008/04/05(土) 15:07:51 ID:???] rails発のMVCモデルはMがDBと密接な関係であるが 最強のモデルとは思っていない。 最適なモデル構造というには、まだまだ完成度が低いとrails作者は言っている
613 名前:nobodyさん mailto:sage [2008/04/05(土) 15:49:00 ID:???] >>607 面白いけど これ通りに書いたら一覧性下がりそうだな 大規模なら修正には強くなりそうだね まずは体に叩き込んでみるのがいいのか
614 名前:nobodyさん mailto:sage [2008/04/05(土) 20:57:16 ID:???] >>611 > MVCのVが重点となるソフトをあげてみよ 静的なウェブページ
615 名前:nobodyさん mailto:sega [2008/04/07(月) 17:32:08 ID:???] ゆくゆくはcake使いたいけどあと8時間くらいしか時間ないし 今は勉強してる暇も無いからとりあえず平で書く ってときに、最低限これだけ守ってコード書いとけば あとでcakephpを使いたくなってもまあなんとかなるよ という ポイントを教えて
616 名前:nobodyさん mailto:sage [2008/04/07(月) 17:50:23 ID:???] Cake同様のライブラリが揃ってるってなら、そんな事も可能だと思うが・・。 無理じゃね
617 名前:nobodyさん mailto:sage [2008/04/07(月) 18:06:48 ID:???] データベースの主キーはIDだけにしておく
618 名前:nobodyさん mailto:sage [2008/04/07(月) 18:28:13 ID:???] それはコードなんだろうか とにかく規約ぐらい把握しないと無理だよね 結局出来るのはDBの設計ぐらいじゃないかと コードも処理部分は多少使いまわせるだろうけど
619 名前:nobodyさん [2008/04/09(水) 22:36:27 ID:0zi6cM/k] CakePHP内でfindAll、findAllByを使っていますが、重いのでチューニングできないかと 考えています。 それで、実際に発行されているSQLと、可能であればアクセスパスを確認したいの ですが、なにか方法がありますでしょうか。
620 名前:nobodyさん mailto:sage [2008/04/09(水) 23:44:43 ID:???] デバッグモードを2に変更。実行したsqlが見れます
621 名前:619 [2008/04/10(木) 00:04:23 ID:ysAxvq3P] >>620 確認できました! ありがとうございます。
622 名前:nobodyさん mailto:sage [2008/04/10(木) 10:23:53 ID:???] Model->query()で以下のようなSQLを発行すると $sql = <<<EOF SELECT `Foo`.`id`, SUM(`Bar`.`hoge`) FROM `bars` AS `Bar` LEFT JOIN `foos` AS `Foo` ON (`Bar`.`foo_id` = `Foo`.`id`) WHERE `Foo`.`id` IN (1, 2, 3, 4, 5) GROUP BY `Foo`.`id` EOF; 連想配列の添字がおかしくなるのですが、回避はできないのでしょうか array( '0' => array( 'Foo' => array('id' => ***) '0' => array('SUM(`Bar`.`hoge`)' => ***) ←ここ ) . . . )
623 名前:nobodyさん mailto:sage [2008/04/10(木) 10:42:01 ID:???] >>622 なんかqueryなんか使わないで、find()で出来そうな気がするんだが? queryだとRDBMSごとの違いを吸収できないことがあるのでお勧めしない。 んで、試してないんで間違っている可能性が高いんだが $sql = <<<EOF SELECT `Foo`.`id`, SUM(`Bar`.`hoge`) as `Bar`.`hoge` 以下同じ じゃだめかな? 内部的には帰ってくるデータのフィールド名がどうなっているかを判断して 連想配列に入れているようだから、SUM関数とか使うとフィールド名が CakePHP的に想定外になる。それが原因じゃないかな? ちなみに、この、 as `Bar`.`hoge`の文字列の部分がRDBMSによって違うので 考えなしに使ってしまうと、RDBMSごとの違いを吸収できなくなる。 (たしかPostgreSQLだとas Model__Field) もちろん、MySQLにだけ対応していればいいのなら、問題ないけどね。
624 名前:nobodyさん mailto:sage [2008/04/10(木) 11:29:33 ID:???] >>623 レスありがとうございます alias噛ませる方法は私も試してみたのですが FROM `bars` AS `Bar`の宣言と被っているためエラーが返ってきます。 hasManyで繋がっている集計先テーブルの条件指定なども追加したい場合 CakePHPの作法だとどのようにするべきなのでしょうか?
625 名前:nobodyさん mailto:sage [2008/04/10(木) 11:53:32 ID:??? BE:39571564-2BP(2)] 参照の参照がうまくいかない。 たとえば、PostのViewにユーザ名だけでなく、そのユーザが所属するグループ名を表示したい場合、どうすればいいんだろう? Post.id Post.user_id−参照→User.id ←取得−User.username User.group_id−参照→Group.id ←取得−−−−−−−−−−− Group.groupname User.usernameを表示する場合は、$post['User']['username']でいけるっぽいけど、 じゃあ、そのユーザのグループ名はどうやって取得すればいいんだろう? 他にも、グループ名のリンクをクリックしたときに、そのグループに所属するユーザ (User.group_idの値がGroup.idの値と等しいユーザ)User.usernameの一覧を作成するときとか どのように書けば良いんだろうか? MVCにしろ、SQLにしろ始めたばっかで全然わからないや。
626 名前:nobodyさん mailto:sage [2008/04/10(木) 15:04:31 ID:???] >>625 Post -> User -> Group という順番に適切なアソシエーションが設定されていれば、芋づる式にデータは取ってこれる。 やってるけど分からないなら>>620 が書いているように、デバッグモードをonにしたほうがいい。 その質問の仕方だと、何をどこまでやって分からないのか分からない。
627 名前:nobodyさん mailto:sage [2008/04/10(木) 22:22:07 ID:???] >>624 とりあえず、 SUM(`Bar`.`hoge`) as `sumhoge` これだと、 Array([0] => Array([0] => Array([sumhoge] => 6))) となるよ。 まとめて書くなら、 $query = array( 'conditions'=>array( 'Foo.id'=>array(1,2,3,4,5), '1=1 GROUP BY Foo.id' ), 'fields'=>array('Foo.id','SUM(Bar.hoge) as sumhoge') ) $this->Bar->find('all',$query); って感じかな
628 名前:nobodyさん mailto:sage [2008/04/10(木) 22:25:44 ID:???] まあ、SUMつかったせいで、 どこのモデルのデータかという情報が消えてしまい、 0という名前のモデル名になるってだけで おかしいわけじゃないんだけどな。 今回はBar.hogeのSUMだからモデル名はBarになるべきだと 思うかもしれないけど、SUM(`Foo`.`hoge` + `Bar`.`hoge`) という 書き方だって出来るわけだし。
629 名前:nobodyさん mailto:sage [2008/04/11(金) 00:29:36 ID:???] なるほどなんで0になるんだとか悩んでた しかし、扱いにくいのはたしかなんだよね
630 名前:nobodyさん mailto:sage [2008/04/11(金) 01:18:44 ID:???] BakeとかBakeryとかCheeseCakeなんていう、楽しげな製菓製パン用語の中にあって、 Scaffoldなんていう土建屋みたいなネーミングはいかがなものかねぇ。 いくらRoRのパクリとはいえ、違う名前でもよかったんじゃないかな。 なぁんて、チラシの裏w。
631 名前:nobodyさん mailto:sage [2008/04/11(金) 01:32:12 ID:???] じゃあスポンジケーキ?
632 名前:nobodyさん mailto:sage [2008/04/11(金) 01:40:16 ID:???] >>625 私も初心者ですが、私の場合はVIEWの最後に、 <?php print_r($post); ?> というデバッグ出力を出して確認しながらやってます。 あ、確認は「ソースの表示」をした方が分かり易いかも。 秀丸など、UTF8等のキャラクタセットに対応するエディタが必要ですが。
633 名前:nobodyさん mailto:sage [2008/04/11(金) 02:27:45 ID:???] Vista以降はもう NET Framework 3.0がWEBサイト最強のフレームワークになるな PCのWEBサイトはC#じゃないと追いつけないわ そしてPHPなどの下級言語は携帯サイトでしか使用されなくなる
634 名前:nobodyさん mailto:sage [2008/04/11(金) 02:39:04 ID:???] Windows Server 2008の発売で asp.netの注目度がかなり上がってる どう考えてもPHPから3Dにも強いasp.net(C#)に移行するだろうな
635 名前:nobodyさん mailto:sage [2008/04/11(金) 02:40:09 ID:???] CakePHPなんてやってる場合じゃないぞ 時代遅れ君たち
636 名前:nobodyさん mailto:sage [2008/04/11(金) 04:43:59 ID:???] なんだ? いきなりこいつは? 話ズレまくりで滑ってるな。
637 名前:nobodyさん [2008/04/11(金) 04:57:27 ID:OBoZ/5C8] >>635 代わりに、なにがいま時代の最先端なの?
638 名前:nobodyさん mailto:sage [2008/04/11(金) 13:47:57 ID:???] 世間で何が流行ろうと、CakePHPはCakePHPでいいじゃん。 別に、すでにCakePHPで作ったものをC#に置き換える必要は ないんだし。
639 名前:nobodyさん mailto:sage [2008/04/11(金) 15:17:40 ID:???] C#で作ったって動かないサーバーが多いしな。
640 名前:nobodyさん mailto:sage [2008/04/11(金) 17:09:12 ID:???] 先輩がた教えて下さい。 mysql の max 関数を使うには cakephp ではどのようにすればよいでしょうか。 よろしくお願いします。
641 名前:nobodyさん mailto:sage [2008/04/11(金) 22:44:28 ID:???] $this->モデル名->クエリ(SQL文、false);
642 名前:nobodyさん mailto:sage [2008/04/11(金) 23:41:35 ID:???] queryは普通使わないだろw findといえ
643 名前:nobodyさん mailto:sage [2008/04/12(土) 13:37:27 ID:???] >>642 自分も、するんだったらクエリ発行するしかないと思ってたんだけど、 使った事がないので書かなかった。 findでmax関数ってできるの?
644 名前:nobodyさん mailto:sage [2008/04/12(土) 14:39:58 ID:???] >>632 <?php echo pr($post) ?> がおすすめ
645 名前:nobodyさん mailto:sage [2008/04/12(土) 15:57:22 ID:???] >>643 $this->Model->find('all',array('fields'=>array('MAX(id)'))); >>644 <?php pr($post) ?>でいいよ
646 名前:nobodyさん mailto:sage [2008/04/12(土) 16:42:32 ID:???] cakeって、queryを使ったら死刑!くらいの気持ちが無いと駄目なの?
647 名前:nobodyさん mailto:sage [2008/04/12(土) 19:44:31 ID:???] だってqueryってSQL直で発行だよ? せっかく、CakePHPのデータベース用ドライバが、 RDBMS間の差を吸収しているのに フレームワーク使っている意味半減するじゃん。
648 名前:nobodyさん mailto:sage [2008/04/12(土) 21:28:23 ID:???] >>635 ある意味正解!だがまだ時代が追いついてきていない。 やっぱO/Rマッピングでは無理があるということだ C#も3.0の言語仕様拡張で突き抜けた感があるしね LINQとかラムダ式とかJavaの真似っこでない次元に到達した。 でも現状は糞言語PHPで本当に馬鹿みたいなコーディングするしかないけどな。
649 名前:nobodyさん mailto:sage [2008/04/12(土) 21:50:24 ID:???] >>648 中身がまったくない。知っている用語を羅列しただけ 自作自演の可能盛大。0点。出直しましょう。
650 名前:nobodyさん mailto:sage [2008/04/12(土) 21:53:16 ID:???] >>647 >> RDBMS間の差を吸収しているのに 一つのシステムに複数のRDBMSを跨ぐ様な事なんて殆どないけどな。 まぁ、極力queryを使わないほうがいいのは同意。
651 名前:nobodyさん mailto:sage [2008/04/12(土) 21:55:24 ID:???] 同じコードで、いろんなデータベースに 対応できるってことを言っているんだろ。馬鹿か。
652 名前:nobodyさん mailto:sage [2008/04/12(土) 22:14:35 ID:???] 素直にRailsつかったらいいのに
653 名前:nobodyさん mailto:sage [2008/04/12(土) 22:22:03 ID:???] railsかぁ。二年ぐらい前なら、それだけの価値はあったかもしれないが。
654 名前:nobodyさん mailto:sage [2008/04/12(土) 23:15:20 ID:???] DBにべったりガッツリ依存しまくってるフレームワークってないのかな 割り切った設計で可能な限り使いやすさと速度の両立を目指すという
655 名前:nobodyさん mailto:sage [2008/04/12(土) 23:24:15 ID:???] そのRailsだって難しい事はSQL直発行しろってスタンスだろ Zendに至ってはプレースホルダのSQL直発行がメイン findごときで収まるクエリだけなら世話ねーの
656 名前:nobodyさん mailto:sage [2008/04/13(日) 00:28:23 ID:???] だからむずかしいことだけSQL発行すればいいんだよ。 Zendの場合、O/Rマッパーそのものがない。 あれはフレームワークというよりライブラリだから。
657 名前:nobodyさん mailto:sage [2008/04/13(日) 11:48:16 ID:???] なんかCakePHP以前の事をお聞きするのですが・・・。 前々スレ744を参考に、$html->formTagでformタグを実装しようとしています。 ただ、検索文字列(this.search.valueの部分)に全角文字が入るため、エンコード(?)する必要が あると思うのですが、その方法が分かりません。 やり方、もしくは、この単語でググればよい、というのを教えて下さい。 744 :nobodyさん:2007/09/15(土) 12:14:57 ID:??? > >>740 > こうですか?わかりません>< > > $html->formTag('/post','get',array('onsubmit'=>'location.href=\'/post/\'+this.search.value;return false;'));
658 名前:nobodyさん mailto:sage [2008/04/13(日) 13:07:44 ID:???] <form action="/コントロール名/アクション名/" method="POST"> <input type="submit" value="検索"> 入力欄は$html->inputなどを使う事
659 名前:658 mailto:sage [2008/04/13(日) 13:18:37 ID:???] action="<?= $html->url('/コントローラ名/コントローラメソッド名')" だった。すいません
660 名前:657 mailto:sage [2008/04/13(日) 14:18:45 ID:???] >>659 ありがとうございます。 ただ、method=getなので、やりたかった事とはちょっと違うようで・・・。 いろいろ試したのですが、けっきょく、VIEW側は <?php echo $html->formTag('/post/', 'get'); ?> <input type="text" name="search" size="15"> <?php echo $html->submit('検索'); ?> として、コントローラー側で function search() { $keyword = $this->params['url']['search']; (以下略) として対処する事にしました。
661 名前:nobodyさん mailto:sage [2008/04/13(日) 19:11:09 ID:???] >>651 同じコードで、いろんなデータベースに対応できるから極力queryを使わないほうがいいって言ってんだろ。馬鹿か。
662 名前:nobodyさん mailto:sage [2008/04/14(月) 02:08:03 ID:???] CakePHP1.2を昨日から使い始めました。 それで、$formがまだよくわかっていないのですが、$form->radioで 1つ目にcheckedをつける場合、どのように指定すればいいのでしょうか? <?php echo $form->radio('Bookmark.access', array(1=>'公開','非公開'), array('legend'=>false, 'separator'=>' ')); ?>
663 名前:nobodyさん mailto:sage [2008/04/14(月) 11:45:13 ID:???] >>662 inputだとこんな感じ <?php echo $form->input('Bookmark.access', array( 'options'=>array('1'=>'public','2'=>'private','3'=>'text'), 'type'=>'radio', 'legend'=>false, 'separator'=>' ', 'value'=>'3')); ?> たぶん、radioでもvalueをつけるといけると思う。
664 名前:nobodyさん mailto:sage [2008/04/14(月) 17:25:15 ID:???] radioでvalueつけると、二つ目にチェック入れて 入力エラーで戻ってきたときに、 また一つ目がチェックされるのよね。
665 名前:nobodyさん [2008/04/15(火) 00:36:29 ID:kB0aZEdA] Cake1.2でのAuthComponentの使い方などで、なにか良いチュートリアルがあれば教えていただけませんかー? もし可能であれば、ACLのうまい活用の仕方もわかると嬉しいです ペコリ
666 名前:662 mailto:sage [2008/04/15(火) 01:18:18 ID:???] >>663 inputの例を参考に、2つ目のarrayに'value'=>'1'を追加して、うまく行きました。 ありがとうございます。
667 名前:nobodyさん mailto:sage [2008/04/16(水) 13:10:23 ID:???] Ver1.2でshellsの中でコンポーネント使うにはどすればいいの?
668 名前:nobodyさん mailto:sage [2008/04/16(水) 16:28:26 ID:???] App::importでなんでもござれだが、 そもそもshellsの中でコンポーネントを使うのが問題ではないのか? コンポーネント = コントローラの汎用的処理、 つまり処理の内容はコントローラそのものなわけで、 シェルの中からコントローラを呼び出すというのがちょっと疑問な処理。 コントローラの処理にリダイレクトするという考えでrequestActionを 呼び出すという考えもありとは思うが、 そもそもそれはモデルにおくべき処理なのかも知れないぞ。 ちなみにシェルからモデルを扱うには、usesプロパティを使用するだけでOKだ!
669 名前:nobodyさん [2008/04/17(木) 18:54:40 ID:YR2rN8Sk] ところでみんなはShellsはどんな使い方してるの? 俺の場合は、定期的にcronで叩いて、指定ディレクトリに生成された大量の一次データをDBに取り込む作業、とか。
670 名前:nobodyさん mailto:sage [2008/04/17(木) 19:48:58 ID:???] 今日はじめてcakeつかったけどさ、mysqlのセキュリティを下げないとつかえないじゃん オワタ
671 名前:nobodyさん mailto:sage [2008/04/17(木) 21:32:22 ID:???] 釣りに嘲笑レスだが、セキュリティを下げるって何したの?w
672 名前:nobodyさん mailto:sage [2008/04/17(木) 21:35:44 ID:???] >>669 旧システム(フレームワーク未使用)から新システム(CakePHP)への データコンバートに使った。 あとは簡易なツールかな。たとえば入力した単語の単数形⇔複数形 などをするツール。
673 名前:nobodyさん mailto:sage [2008/04/17(木) 21:42:54 ID:???] >>671 これが釣りに見えるとは・・ おまえの知識がよくわかるわ #sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
674 名前:nobodyさん mailto:sage [2008/04/17(木) 22:03:43 ID:???] 知識うんぬん以前に、お前何も言ってないじゃん。 セキュリティを下げるというだけで、それ以外のまともな情報が何もない。 だから馬鹿にされるんだよ。 で、それのどこがセキュリティ下げてることになると思ってんの?w 互換性とセキュリティの違い、理解しようね。
675 名前:nobodyさん mailto:sage [2008/04/17(木) 22:25:09 ID:???] >>674 ( ゚д゚)ポカーン
676 名前:nobodyさん mailto:sage [2008/04/17(木) 23:10:06 ID:???] >>673 どういう意味? sql-modeをこれに設定したって事?
677 名前:nobodyさん mailto:sage [2008/04/18(金) 00:13:14 ID:???] >>676 に書いてあることがコメントされずに初期設定されている これをコメントアウトすることによってセキュリティを甘くせざるを得ないわけよ このモードをはずさないとcakeのコードからワーニングがでる。 cakeに潜んでるバグで作者は修正予定らしい
678 名前:nobodyさん mailto:sage [2008/04/18(金) 00:16:50 ID:???] >>676 横レスですまんが、すっげぇ要するにMySQL5系の設定で STRICT_TRANS_TABLESを指定していると、SQLの構文チェックを 厳密にするんだけど、このままだとCakePHPの吐くSQL自体でエラーが出るんよ。 んだから今の所は構文チェックを緩くしないとCakePHPが動作しないって事。 >>670 の説明で分かった奴はエスパー。
679 名前:676 mailto:sage [2008/04/18(金) 00:24:11 ID:???] >>678 の説明でようやく分かったw
680 名前:nobodyさん mailto:sage [2008/04/18(金) 00:33:10 ID:???] 名無しのままでいいからもっといじったほうがいいよ676さんは
681 名前:nobodyさん mailto:sage [2008/04/18(金) 00:34:11 ID:???] 1.挨拶を自分からしない・できない・やろうと思わない 2.リアルではおとなしいのにネット上では態度がでかい。 3.自分の意見で地球が動いてると思ってる。自分の意見はみんなの意見。 4.自分に非があってもスグ言い訳、逆切れ。他人を攻撃する。威嚇することで自分の弱さを隠している。
682 名前:nobodyさん mailto:sage [2008/04/18(金) 01:17:05 ID:???] >>678 つまり、セキュリティの問題じゃないってこと?
683 名前:nobodyさん mailto:sage [2008/04/18(金) 01:18:01 ID:???] >>682 つまり、日本語わかるか?
684 名前:nobodyさん mailto:sage [2008/04/18(金) 01:18:11 ID:???] っていうか、MySQLの仕様変更だし。 CakePHPのバグでもセキュリティの問題でもない。
685 名前:nobodyさん [2008/04/18(金) 01:27:47 ID:UgH30Z6m] アホが大量発生しとりますな。 CakePHPとはスレ違いだし
686 名前:nobodyさん mailto:sage [2008/04/18(金) 01:28:35 ID:???] まあ、>>670 がアフォってことでいいじゃんかw
687 名前:nobodyさん mailto:sage [2008/04/18(金) 01:46:12 ID:???] >>673 のsql-modeの値がデフォルトになっているのは、 Windows板でインストーラーを使ってインストールした場合のみ。 本当のデフォルトの値は厳密モードじゃありません。 いい加減Windowsは卒業しろよw
688 名前:nobodyさん mailto:sage [2008/04/18(金) 02:46:06 ID:???] >>682 んーと、SQLインジェクションとか攻撃者が故意に行うものとは違うんだけど、 まぁ広義の意味でセキュリティの問題だとは思うよ。 つーのも、MySQL4系ってあれなのよ、予め決めたカラムの型よりデカいデータ食わせると 勝手に型に合わせてデータ削って無理やり挿入してくれちゃうのよ。 例えばvarchar(4)でカラム作ってそこに"unkotintin"ってデータ突っ込んでも、うんこしか保存されないわけ。 他にも''をNULLと解釈してくれたり、2008-02-31を許容してくれたりと 入力データに対して大変大らかな実装なんよね。 で、それってちょっとマズいだろ、入力データが型に合ってない=異常事態なんだから 強制保存すんな!ロールバックしろヴォケ!と思う人も当然いる訳で そんな感じの背景があってMySQL5系から型チェックを厳しくするモードが実装されたと。 CakePHPの場合だと、INSERTする時にidの数字をauto_incrementに任せる訳だけど、 そこで発行されるSQLがid = ''って指定されてるから「そこ文字列入れる所じゃねーよ!」って怒られる。 んだからセキュリティホールよろしく第三者に直接叩かれるって心配はないよ。 余談だけど、STRICT_TRANS_TABLESはInnoDBとかトランザクションをサポートしてねーと使えねーべ。 MyISAMで構文チェックさせる時はSTRICT_ALL_TABLESなー。
689 名前:nobodyさん mailto:sage [2008/04/18(金) 04:25:34 ID:???] それってセキュリティとは言わないと思う
690 名前:nobodyさん mailto:sage [2008/04/18(金) 04:45:08 ID:???] .thtml 派? .ctp派? 今でもぼくは .thtml 派。
691 名前:nobodyさん mailto:sage [2008/04/18(金) 08:30:04 ID:???] >>690 1.1系から乗り換えた当初は.thtmlにこだわってたけど(てか気づかなかった…) .ctpに切り替えたら1日で慣れた やっぱり5文字の拡張子は長すぎるよね
692 名前:nobodyさん mailto:sage [2008/04/18(金) 08:37:15 ID:???] >>689 だから広義の意味っつってんじゃん。日本語理解できてる? Perlでコードの安全性を高めるためにuse strict;するのと一緒だよ
693 名前:nobodyさん mailto:sage [2008/04/18(金) 09:07:33 ID:???] >>691 レスまんくす! では、僕も次のサイト作りから ctp 派 になります♪
694 名前:nobodyさん mailto:sage [2008/04/18(金) 09:12:53 ID:???] >>692 広義の意味でもセキュリティの問題じゃない。 俺俺定義すんなw
695 名前:nobodyさん mailto:sage [2008/04/18(金) 09:15:03 ID:???] >>692 広義といえばどんな主張でも通ると思ってる厨房発見。
696 名前:nobodyさん mailto:sage [2008/04/18(金) 15:39:38 ID:???] メールフォームとかで //入力画面 function form(){ } //確認画面 function confirm(){ //バリデーションでエラーの場合、フォームに戻す if(!$this->Form->validates($this->data)){ $this->set('data',$this->data); $this->render('form'); } } //完了画面 function send(){ } form.thtml <?php echo $html->input('Form/name',array('value' => $data['Form']['name'])); ?> の構成の場合、最初に form にアクセスすると $data['Form']['name'] がない! とNoticeエラーが出てしまいます。 これって、 form() で初期化した $data を与えるしかないのでしょうか? 入力項目がいっぱいあるとめちゃくちゃ大変な気がするのですが…。
697 名前:nobodyさん mailto:sage [2008/04/18(金) 16:19:29 ID:???] findByなどで、hasManyでくっついてきたレコード数をカウントしたい場合、 どのようにすればよいのでしょうか?
698 名前:nobodyさん mailto:sage [2008/04/18(金) 18:21:08 ID:???] 1.1系でmode内でorderとかconditionを設定できないの? class Post extends AppModel { protected $order = "Post.created DESC"; とかでfindしても駄目なんです。
699 名前:698 mailto:sage [2008/04/18(金) 18:21:29 ID:???] すいませんmodel内でです
700 名前:698 mailto:sage [2008/04/18(金) 19:03:12 ID:???] もう少し分かりやすく言うと、モデル内でSQLの検索条件(where句)に縛りを入れたいです。
701 名前:nobodyさん mailto:sage [2008/04/18(金) 19:27:37 ID:???] うっ・・・だめ。もう・・もう・・・もうでる。 モデル
702 名前:nobodyさん mailto:sage [2008/04/18(金) 19:50:15 ID:???] モデル内に function find_name_only($cond = "name like '%tarou%'"){ return $this->findAll($cond); } を書いてごまかしてみました。 ほかにいい方法があるのでしょうか?
703 名前:nobodyさん mailto:sage [2008/04/18(金) 20:00:26 ID:???] >>696 まだ始めて2週間しかたってないけど。 form.thtml <?php echo $html->input('Form/name'); ?> で、どう? あと、$this->set('data',$this->data); は、要らないとおも
704 名前:nobodyさん mailto:sage [2008/04/18(金) 20:05:29 ID:???] >>697 count( $model['Model']['HasManyModel'] ) かな?
705 名前:697 mailto:sage [2008/04/18(金) 21:22:22 ID:???] >>704 これは取り出した後で、PHPのcount関数で配列の要素数をカウント、ということでしょうか? そうではなくて、 たとえばfindAllするときに取得順などにHasManyModelのカウント数を使いたいのですが。 質問の文章がわかりづらくて申し訳ありません; よろしくお願いします。
706 名前:nobodyさん mailto:sage [2008/04/18(金) 21:42:58 ID:???] >>705 おそらく、自分でクエリを書かないといけないでしょうね。
707 名前:697 mailto:sage [2008/04/18(金) 21:47:07 ID:???] >>705 やはりそうですか; せっかくフレームワークを使っているのでできればクエリは書きたくないですね・・・ UsersをPostsの多い順に並べ替える、など、結構よく登場すると思うのですが;
708 名前:nobodyさん mailto:sage [2008/04/19(土) 01:00:18 ID:???] > UsersをPostsの多い順に並べ替える、 やってないけど、これは、findAllの条件にexistsなんたらって書いて countだせばいいとだろうから、一応findAllは使えるな。 半分ぐらいしか意味ないけど。
709 名前:nobodyさん mailto:sage [2008/04/19(土) 01:16:45 ID:???] >>707 それか、1回データを取り出した後で件数をキーにした連想配列に入れかえるのはどうでしょうか。 配列の添え字を、 $array[$count .' - ' .$id] こんな感じにして配列をソートしたら出来そうですが。
710 名前:nobodyさん mailto:sage [2008/04/19(土) 10:26:43 ID:???] >>707 > UsersをPostsの多い順に並べ替える、など、結構よく登場すると思うのですが; ちょうど同じような事例を考えていた。 顧客とその顧客の取引データが一対多でつながっている場合に 取引が多い顧客を見たいと。 で、いろいろ考えたんだが、顧客数や取引が多くなると重くなりそうなので、 (だって内部的には顧客ごとにデータ数えて、その数でソートするんだろう!?) 非正規化することになるが、顧客データの中に取引数フィールドを作ることにした。 あとは取引データ保存時、つまりモデルのafterSave時に、 顧客テーブルの取引数フィールドをいじればいいと。 フレームワークを使っているとこういうトリガー的なことを データベースに依存せずにやれるから良いね。
711 名前:697 mailto:sage [2008/04/19(土) 11:37:16 ID:???] >>ちょうど同じような事例を考えていた。 奇遇です! なるほど・・・あえて非正規化する、と。 手元にある参考書に 「処理効率を考えて、あえて非正規化することもある」 と書いてあった意味がわかりました。 たしかに、毎回自分でクエリ書くのに比べたら、 冗長なデータを持っておくくらい、なんてことないですね! 目からウロコでした!
712 名前:nobodyさん mailto:sage [2008/04/19(土) 11:39:14 ID:???] DB使ってる意味ねぇw
713 名前:697 mailto:sage [2008/04/19(土) 11:50:08 ID:???] >>712 では、他に何かいいアイデアがあるのですか?
714 名前:nobodyさん mailto:sage [2008/04/19(土) 12:22:29 ID:???] 俺は自分でクエリを書いたほうが断然面白い。
715 名前:nobodyさん mailto:sage [2008/04/19(土) 12:31:41 ID:???] 1.2を入れてみたのですが、 function index() { $data = "テスト"; $this->set('data', $data); } とやっただけで Allowed memory size of xxx bytes exhausted ... が出てしまいます; CakePHP叩きではなく、本当に困っています。 対処法を教えてください。
716 名前:nobodyさん mailto:sage [2008/04/19(土) 12:38:01 ID:???] >>715 その程度のコードで、そのエラーが出るときは、 基本的にバグだと思ったほうが良い。 まあ環境のせいもあるからとりあえず聞くけど、 OSとPHPのバージョンと、php.iniの設定(もしくはini_get('memory_limit'))の値) function index() { echo 'aaa';exit; } とやるとどうなるか。 index()以外のコードはどうなっているか。
717 名前:nobodyさん mailto:sage [2008/04/19(土) 12:42:21 ID:???] >>712 > DB使ってる意味ねぇw DB使うことが目的じゃないからね。 DBは所詮データの保存先に過ぎないし。
718 名前:715 mailto:sage [2008/04/19(土) 12:47:34 ID:???] >>716 レスありがとうございます。 どうやらbakeで生成したビューをそのまま使っていたことが原因だったようです; スレを汚してしまってすみません;;
719 名前:nobodyさん mailto:sage [2008/04/19(土) 13:08:09 ID:???] >>717 じゃファイルベースでやりゃいいじゃん。やらない理由は?
720 名前:nobodyさん mailto:sage [2008/04/19(土) 14:35:19 ID:???] CakePHP でPEARを使うとき 依存PEARがうまく発見できないのですが、 どうすればよいのでしょうか? php.iniのinclude_pathには app/vendorsを追加してあります。
721 名前:nobodyさん mailto:sage [2008/04/19(土) 17:44:54 ID:???] >>719 > じゃファイルベースでやりゃいいじゃん。やらない理由は? フレームワークがファイルベースに対応していないから。 (読み書きできないということではなく、モデルが対応していないということ)
722 名前:720 mailto:sage [2008/04/19(土) 18:05:22 ID:???] すんません; 事故解決しました。
723 名前:nobodyさん mailto:sage [2008/04/19(土) 19:37:01 ID:???] >フレームワークがファイルベースに対応していないから。 ユーザが自由に選択することもできないってこと? 強制的にDB使用? CakePHP糞FWすぎるwwwww
724 名前:nobodyさん mailto:sage [2008/04/19(土) 20:20:16 ID:???] 流れ読まずにすみません。 CakePHPで作られてるサイトで有名なところを見てみたいのですが、 教えていただけませんか? たしかNiftyのなんかがCakeだと聞きましたが・・・
725 名前:nobodyさん mailto:sage [2008/04/19(土) 21:00:48 ID:???] mozillaのサイトとか
726 名前:nobodyさん mailto:sage [2008/04/19(土) 23:46:04 ID:???] >>723 君頭大丈夫かね? CakePHPは別にデータベースを使用する必要は無い。 ただデータベースを使ったほうが効率がいいだけだ。 それがファイルベースでやらない理由。 どうやら君は素人なのだろう。
727 名前:nobodyさん mailto:sage [2008/04/20(日) 00:01:18 ID:???] >>711 非正規化は、一般的な業務システムでもよくやるな。 ただ、明らかに正規化をさぼってて、テーブルのカラム数が100個超えているのを 「性能を考えて非正規化している」と言い張る人はカンベンしてほしい。 あぁごめん。cakePHPの話から逸脱した。 >>723 どこか忘れたけど、コントローラあたりの設定で、DBを使わないようにもできたはず。 だれか補足頼むw 特殊な使い方でもしない限り、あんましメリットはなさそうだね。
728 名前:nobodyさん mailto:sage [2008/04/20(日) 00:32:54 ID:???] >>726 相手を見下さないと精神を保てない糞FWユーザ涙目www
729 名前:nobodyさん mailto:sage [2008/04/20(日) 00:33:33 ID:???] 図星だったのか? その反応は。
730 名前:nobodyさん mailto:sage [2008/04/20(日) 00:34:22 ID:???] モデルが貧弱なCodeIgnitorよりは CakePHPの方が実用的に見て優れているな。
731 名前:nobodyさん mailto:sage [2008/04/20(日) 00:46:44 ID:???] >>728 フレームワークに問題が無い話をしているのに 糞FWとか言っているようじゃ 説得力皆無だゾ
732 名前:nobodyさん mailto:sage [2008/04/20(日) 01:31:23 ID:???] >>723 だからDB使わない事もできるって。 デフォルト設定がDB使用になってるだけで、全然強制じゃない。 ttp://www.1x1.jp/blog/2007/08/cakephp_no_db.html ファイルベースの設定方法は、わざわざ書かなくてもいいよね? >730 CodeIgnitorを使いたい人は使えばいいし、CakePHPを使いたい人は 使えばいいし、それだけの事。 CodeIgnitorは機能が少ない分、実装がシンプルで軽いのが特徴なんだから、 機能的に足りていれば、そっちでもいいでしょ。
733 名前:nobodyさん mailto:sage [2008/04/20(日) 01:35:00 ID:???] ちいたん最強
734 名前:nobodyさん [2008/04/21(月) 16:11:05 ID:Hc1e0Bqc] 追加の検証が必要な不確実な情報 俺のコードに問題がある可能性もあり。 1.2.0.6311-beta のデフォルトのセッション管理(ファイルベース?) Configure::write('Session.save', 'cake'); のとき、同時に複数のアクセスがあるとロックされるかもしれない。 つまり、一つの目のアクセスで長い処理を行っていると 二つ目のアクセスがロックされ一つ目が終わるまで実行されない。 Session->read()で待たされる。 Configure::write('Session.save', 'database');にして DBベースのセッションにするととりあえず回避できる。 関係ないとは思うがPostgreSQLの場合。
735 名前:nobodyさん mailto:sage [2008/04/21(月) 16:34:17 ID:???] PhpNutいなくなっちゃったの?
736 名前:734 mailto:sage [2008/04/21(月) 19:37:53 ID:???] よく考えたら、ロックされるほうが正しいのか。 アクセスしたユーザーはロックされるが 他の人(ようするにセッションファイルが違う人)は ロックされないようだ
737 名前:nobodyさん mailto:sage [2008/04/22(火) 13:08:38 ID:???] 初歩的な質問で申し訳ありません。 bakeで作ったコントローラをみると $this->Session->setFlash(__('hogehoge.', true)); のようなコードがありますが この__() や後ろのtrueは何を意味しているのでしょうか? もしかするとcakePHPに限ったことではないかもしれませんが、 よろしくお願いします。
738 名前:nobodyさん mailto:sage [2008/04/22(火) 15:52:58 ID:???] >>737 多言語化機能。 /app/locale/jpn/LC_MESSAGE とその周辺あたりに言語ファイル .po や .mo を置くと、hogehogeが翻訳される。 多くはビューで使われるため、<?php __('hogehoge') ?> と簡便に書くことが出来るようになっている。 この場合、言語ファイルがあると、hogehogeが翻訳されて”出力”される。 第二引数にtrueを指定すると出力せずに戻り値として返すという意味。 これと似たやり方は、CakePHPだけでなく、PHP以外でも良く使われ 多くは _('hogehoge')という書き方をする。 PHPではgettext関数の別名として_()関数が使用できる。 jp.php.net/manual/ja/function.gettext.php CakePHPではこのやり方を独自に拡張しており、 関数名がアンダーバー二つになっている。
739 名前:nobodyさん mailto:sage [2008/04/22(火) 15:54:09 ID:???] おまけ。翻訳手順。poeditを使った場合。 1.ソースコードやビューの中の翻訳したい文字列を__('hogehoge')という書き方にする。 2.cake i18n extractツールを使うと、ソースコードの中から__()の部分を抽出、.potファイルを生成してくれる。 3.poeditなどのツールを使い、.potファイルを取り込み、.poを作る。 4..poを編集して翻訳リストを作っていく。 5.最後に.poを.moにコンパイルする。.moが最終的な翻訳ファイル。poeditの場合.poを保存したら.moも出来る。 6.新たに単語が増えたときは、2の手順で再度.potファイルを生成する。 7.poeditで今使っている.poに.potファイルを追加取り込みをする。ちゃんと差分だけが取り込まれる。削除された単語も.poファイルに残っている。 8.再度翻訳して保存。.moを作る。 ファイルの意味をまとめると、 .pot・・・単語のリスト(今現在使用している単語を抽出するテキストファイル) .po・・・作業ファイル(過去に使用して、今は削除している単語の翻訳情報なども残っているテキストファイル) .mo・・・翻訳ファイル(作業ファイルに残っているいろいろな無駄が取り除かれたバイナリファイル) ※ 実はCakePHPは .mo が無くても .po を直接翻訳ファイルとして使える。
740 名前:nobodyさん mailto:sage [2008/04/22(火) 18:29:42 ID:???] >>737 いい質問。俺も初めてしった。 >>738 ,739 素敵だわぁ
741 名前:737 mailto:sage [2008/04/22(火) 18:43:22 ID:???] >>738-9 丁寧なレスをありがとうございます。 CakePHPにはまだまだ知らない機能があるんですね。 いろいろ楽しみです。
742 名前:737 mailto:sage [2008/04/22(火) 18:44:53 ID:???] アンカーの付け方間違えました・・・ マウスオーバーしないようにお願いします;;
743 名前:739 mailto:sage [2008/04/22(火) 18:56:32 ID:???] 一つ言い忘れた。.pot .po .mo とかの .で始まるやつは ドットで始まるファイルではなく、拡張子という意味で書いた。 デフォルトではdefault.poやdefault.mo になる。 それぞれのファイルのdefaultの部分を変更することも可能。 abc.mo の場合、その場合、__d('abc', 'hogehoge') という書き方で 出来ると思うがやったこと無いので/cake/basics.phpでもよんどくれ。
744 名前:新参者 mailto:sage [2008/04/23(水) 05:59:57 ID:???] ブラクラするんだけど、俺だけ? メニューを選んで、表示し終わる前にサイト内検索する。(Specialofferとか) www.islandcruises.com/ OS: WinXP sp2 Browser: IE7 CPU: Core2 6300 Memory: 2G Service: xampp CakePHP 1.2で開発中なので、こういうの見るとビビっちまう・・・
745 名前:744 mailto:sage [2008/04/23(水) 06:23:11 ID:???] 追記: キャッシュクリア後とかに、 zeroで検索するとハングしやすい。 firefoxだと大丈夫なので、IE7の仕業くさいな。 調べてくるか・・・
746 名前:702 mailto:sage [2008/04/24(木) 18:22:26 ID:???] >>698-702 の流れから結局、model内でfindAllをオーバライドしてみたがなんかアソシエーション組んでるほかのモデルまで影響しているような気がする・・。 function findAll($conditions=null, $fields=null, $order=null, $limit=null, $page=1, $recursive=null){ if(isset($conditions) && is_array($conditions)){ array_unshift($conditions,"name like '%" . USER_NAME . "%'"); }else{ $conditions = array("name like '%" . USER_NAME . "%'"); } return parent::findAll($conditions, $fields, $order, $limit, $page, $recursive); }
747 名前:nobodyさん mailto:sage [2008/04/24(木) 22:39:06 ID:???] >>746 1.1ってbeforeFindなかったっけ?
748 名前:702 mailto:sage [2008/04/25(金) 12:38:51 ID:???] >>747 ありがとう、まじでありがとう
749 名前:nobodyさん mailto:sage [2008/04/26(土) 13:26:12 ID:???] URLを読み込む以外に、CakePHP外部から CakePHPの関数とか呼ぶ方法内ですかね? 具体的に言うと、もともとウェブサイトがCMSで構築されており、 新たにCakePHPを使ったウェブシステムを追加したわけですが、 そのCMSのページ上にCakePHPシステムの情報・・・会員ユーザー名などを 表示させたいのです。
750 名前:nobodyさん mailto:sage [2008/04/26(土) 13:30:26 ID:???] 好きなようにDB叩けばいいんじゃまいか?
751 名前:nobodyさん [2008/04/26(土) 14:52:38 ID:CCA4AGBq] Shellsでしょう
752 名前:nobodyさん [2008/04/26(土) 21:38:26 ID:Uwx0xpWG] セッションがクリアされてしまってハマった。 ネットで検索すると、存在していないcssや画像ファイルがあると消え、 htaccessでの設定で回避できるということだった。 css、画像ファイルのパスと存在が正しいことを確認、 htaccessファイルの設定も修正してみたが、セッションはクリアされたまま。 たすけて。
753 名前:nobodyさん mailto:sage [2008/04/26(土) 22:33:41 ID:???] >>752 CakePHPのバージョンはいくつ? こんなのがあった。 ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=817&forum=9 ちなみに、初めてセッションを使おうといろいろ調べてるんだけど、参考になる サイトあったら情報きぼう。 とりあえずこのあたりを参照中。 ttp://cakephp.jp/doc/session.html ttp://d.hatena.ne.jp/hetima/20070116/1168883397 ttp://d.hatena.ne.jp/hetima/20070201/1170313526 ttp://develop.ddo.jp/new-tech/php/framework/cakephp/memo/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E9%85%8D%E5%88%97%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95 ttp://sand-man.blog.so-net.ne.jp/2007-06-26-1
754 名前:753 mailto:sage [2008/04/26(土) 22:35:08 ID:???] ごめん。よくみると全然関係なさそうだね。
755 名前:nobodyさん mailto:sage [2008/04/26(土) 22:37:46 ID:???] >>753 は読まずに答えてみる。的外れかも。 えーと、core.phpだっけ? セキュリティレベルを設定するところ。 あそこが一番高いと、接続するたびに、セッションIDが変更される。 だから途中でエラー?とかあると、サーバー側ではセッションIDの情報が変わっているのに クライアントでは新しいセッションIDをもらきれておらず、セッションIDが切断=クリアされてしまう。 だから俺はセキュリティレベルを中にした。
756 名前:755 mailto:sage [2008/04/26(土) 22:41:33 ID:???] ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=817&forum=9 > slywalker 投稿日時: 2007-11-5 12:58 この人と同じこと。
757 名前:nobodyさん [2008/04/26(土) 23:10:06 ID:Uwx0xpWG] CAKE_SECURITYを、'medium'にしてやってみたけどダメでした。 セションをwriteした直後にreadしてみたら、ちゃんと設定されてるのは確認できたんですけどね。 次の画面でreadすると空になってる。ん〜困った。
758 名前:nobodyさん mailto:sage [2008/04/26(土) 23:38:17 ID:???] まさかブラウザ側の問題ってことは・・・ セキュリティソフトとか。
759 名前:nobodyさん mailto:sage [2008/04/26(土) 23:42:15 ID:???] writeした直後にreadしてちゃんと設定されていると 確認するのはあまり意味無いよ。 なぜなら、情報が実際にセットされるのは ブラウザにクッキー情報が返ってからだから。 ieHTTPHeadersやLive Http headers ブラウザのクッキー情報を見るツールを使って 調べてみよう。
760 名前:nobodyさん mailto:sage [2008/04/27(日) 00:07:57 ID:???] あっそうだ。セッションの方式にはどれを使っている? cakephp、php、database? 自分の使い方の問題もあるだろうけど、databaseがなんかうまくいかなかった。
761 名前:nobodyさん [2008/04/27(日) 00:41:14 ID:DD3/O3h6] セッション方式(CAKE_SESSION_SAVE)は、"php"です。 いま↓を見てるんだけど、aタグによるリンクで画面遷移させるので、 セッションIDを付加しないといけないことがわかった。 ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=840&forum=3&post_id=1579 これからやってみます。
762 名前:nobodyさん mailto:sage [2008/04/27(日) 02:40:18 ID:???] cake1.2.0.6311使ってますが、 sqlのCASEはquery対処なんかなあ。$optionsでいけたりする?
763 名前:761 mailto:sage [2008/04/28(月) 00:00:23 ID:???] 自己レスだけど、携帯サイトの場合、Cookieが使えない携帯端末があるから URLにセッションIDを付加する方法でやるしかない。 PCサイトの場合は、セッションハイジャックの危険性があるからURLへのセッションID付加は使えない。 結局、セッションを使わずcookieで運用する方法で実装しました。 本来の意味でのセッションではなく、単なるデータの引き継ぎ用途なので、cookieでよいかと。
764 名前:nobodyさん mailto:sage [2008/04/28(月) 20:32:23 ID:???] 「セッションハイジャックが毎日行われています」 ttp://pc11.2ch.net/test/read.cgi/php/1207863515/236-249
765 名前:nobodyさん mailto:sage [2008/04/29(火) 00:30:20 ID:???] 一週間いじってみたがこんな致命的バグの潜んだFWは使う気になれん
766 名前:nobodyさん mailto:sage [2008/04/29(火) 00:50:53 ID:???] >>765 何かバグにぶち当たったのかもしれんけど、こんな風にいい逃げする 荒らしもいるしなぁ。 本当に困ってるのなら、具体的なバグ例を挙げてみるといいよ。 そしたら対処方法も出るかもしれないし。 話は変わるけど、前のレスでも出てたし、みんな知ってるのかもしれないけど、 このサイトいいね。参考になる。 テンプレに載せてもいいんじゃない? ttp://bakery.cakephp.org
767 名前:nobodyさん mailto:sage [2008/04/29(火) 02:39:08 ID:???] お決まりですので・・・ 宣伝乙^^
768 名前:nobodyさん [2008/05/01(木) 10:47:29 ID:oWWm9vMD] hasMany定義しているModelで、子のデータが更新されたら、そのmodifiedで 親のmodifiedを更新したいのですが、どのようにすればいいでしょうか? 子のデータ更新をするcontrollerでいっしょに更新しようとしたのですが、 上手くいきませんでした。 32 function edit($id = null) 33 { 34 $this->Response->id = $id; 35 $thread_id = $this->Response->field('thread_id'); 36 37 if ($this->Response->saveField('cooking_name',$this->data['Response']['cooking_name'])) 38 { 39 $this->Thread->saveField('modified',$this->data['Response']['modified']); 40 $this->redirect( '/responses/view/'. $thread_id . '#' . $id); 41 } 42 } modelはこの通りです。 7 var $belongsTo = array('Thread' => 8 array('className' => 'Thread', 9 'conditions' => '', 10 'order' => '', 11 'foreignKey' => 'thread_id'));
769 名前:nobodyさん mailto:sage [2008/05/01(木) 13:48:12 ID:???] >>768 39行目はupdateじゃなくて、insertされてない?
770 名前:nobodyさん mailto:sage [2008/05/01(木) 14:08:31 ID:???] >>766 参考になる以前に公式じゃんw
771 名前:768 mailto:sage [2008/05/02(金) 02:37:54 ID:???] すみません自己解決しました。 39行の手前で、親の方にidを設定したところ、きちんと更新されました。 $this->Thread->id = $thread_id;
772 名前:nobodyさん mailto:sage [2008/05/06(火) 17:41:37 ID:???] >>771 報告乙です 参考にさせて頂きます。
773 名前:nobodyさん [2008/05/07(水) 00:15:31 ID:ehDEto56] app/views/layouts/default.thtml にて、あるModelのデータを 展開したいのですが、どうすればいいでしょうか? 対応するコントローラもなさそうだし・・・。
774 名前:nobodyさん mailto:sage [2008/05/07(水) 00:21:12 ID:???] >>773 モデルからコントローラに値を渡してsetしてviewで使えばいいだけですよ。
775 名前:773 mailto:sage [2008/05/07(水) 00:29:55 ID:???] >>774 というと、複数のviewで使いたい場合は、各コントローラ、各アクションで setするという事でしょうか? あるいは、全てのコントローラの前に読み込まれる、共通コントローラみたいのが あったりするのでしょうか。
776 名前:nobodyさん mailto:sage [2008/05/07(水) 00:37:17 ID:???] >>775 そう ある
777 名前:nobodyさん mailto:sage [2008/05/07(水) 14:32:05 ID:???] そうあるよ
778 名前:nobodyさん mailto:sage [2008/05/07(水) 14:48:46 ID:???] >>775 チートシート手に入れるべし
779 名前:773 mailto:sage [2008/05/08(木) 01:09:40 ID:???] 結局レスの内容はよく分かりませんでしたが、下記ページを参考に、 requestActionで取得する事にしました。 cakephp.jp/doc/ch07s02.html /views/layouts/default.thtml <?php echo $this->set('users', $this->requestAction('/users/getUserList'), array('return')); ?> <p><?php $user_numbert = array_rand($this->viewVars['users']); echo $this->viewVars['users'][$user_numbert]['User']['name']; ?></p>
780 名前:nobodyさん mailto:sage [2008/05/08(木) 01:42:10 ID:???] >>779 ちょwwwww志村上上
781 名前:nobodyさん mailto:sage [2008/05/08(木) 09:23:20 ID:???] app_controller.php function beforeRender() { # ここに/users/getUserListの中身とかを $this->set('user_numbert' , $user_numbert); } default.thtml <?php e(h($user_numbert['User']['name'])) ?>
782 名前:nobodyさん mailto:sage [2008/05/08(木) 09:34:15 ID:???] ちょwwwww志村上上下下右左右左BA
783 名前:nobodyさん mailto:sage [2008/05/08(木) 19:24:13 ID:???] 以前にもこんな話題があったような気がするのですが、 フォームの画面遷移のときのデータの持ち回り方について・・・ 1.普通にhiddenで埋め込む 2.serializeしてbase64_encodeしたものをhiddenで埋め込む 3.serializeしてbase64_encodeしたものをセッションに書き込む などが考えられますが、 CakePHP的には、どの方法がベターでしょうか?
784 名前:773 mailto:sage [2008/05/09(金) 01:55:42 ID:???] サンプルコードまでご提示下さり、ありがとうございます。おかげでフル装備 じゃないや、スマートな実装ができました。 どうもありがとうございました。
785 名前:nobodyさん mailto:sage [2008/05/09(金) 09:23:43 ID:???] >>783 質問だけど。 3でbase64_encodeする意味合いって何があるの?
786 名前:nobodyさん mailto:sage [2008/05/09(金) 18:49:37 ID:???] >>783 自分は 1。 セキュリティがどうこうっていうプログラマーさんがいるでしょうけど・・・。
787 名前:783 mailto:sage [2008/05/09(金) 18:55:31 ID:???] >>785 すみません。よくわからないで書いてしまいました;; シリアライズだけで十分ですか? >>786 最終的にsaveするまえにしっかりバリデートすれば、それでも問題ないのかもしれませんね・・・ でもやっぱりソース見たときに、パスワードとかメールアドレスがもろに書いてあると、 このサイト大丈夫か??って気になりますが・・・ ちょっと気になったのですが、PEARのHTML_QuickForm_Controllerなんかは どの方法なんでしょうか??
788 名前:nobodyさん mailto:sage [2008/05/09(金) 20:19:38 ID:???] 貧乏人は贅沢だ 不満を言う余裕はあるくせに 戦争する暇もある
789 名前:nobodyさん mailto:sage [2008/05/10(土) 00:11:55 ID:???] >>787 ソース見られたらっていうのは確かにある。 しかもそれを無理矢理改ざんして入力不可の文字を入力される可能性もある。 しかし、よほどのサイトじゃないとそこまでハッカーも暇じゃないから攻撃しないのでは? と思います。 現に、ここ 5年ほど、何も問題ありませんでした。
790 名前:nobodyさん mailto:sage [2008/05/10(土) 16:35:26 ID:???] >>789 問題があってからじゃ遅いんだぞ! と思いつつも、もりもりhiddenに入れ込んでしまう。。
791 名前:nobodyさん mailto:sage [2008/05/10(土) 17:55:53 ID:???] >>787 セキュリティ目的ならbase64_encodeは用をなさないという認識。 >>789 データはhiddenで埋め込んでおいて、$this->dataをserialize後saltつけてハッシュ化したやつを別でhiddenに埋め込む ↑のふたつを比較して整合性チェックとか?
792 名前:nobodyさん mailto:sage [2008/05/10(土) 18:59:59 ID:???] 今、ここを覗いている筑波大学へ ばれてるぞ!
793 名前:nobodyさん mailto:sage [2008/05/10(土) 19:29:59 ID:???] 別に半角文字列板とかじゃないんだからバレたっていいだろうに。
794 名前:nobodyさん [2008/05/11(日) 11:28:50 ID:qWqUPYxD] 日本語フォーラムと2ちゃん、どっちの方がコメントもらえるのかな? と言いつつ、いつもこっちに書くのだけど・・・。 下の記事を参考に、携帯用ページを作っています。 ttp://www.1x1.jp/blog/2008/04/cakephp_12_routing_prefix.html で、paginateでページングされているのですが、ひとつ問題が。 pagineateの結果、下のようにURLが生成されるのですが、 携帯エミュレータ(P1エミュレータを使用)で確認したところ、 どうやら「page:2」のセミコロンが、有効な値ではないとエラーになるっぽいです。 <a href="/~recipe/m/responses/view/page:2">2</a> これって、どう対応すればいいのでしょう?
795 名前:nobodyさん mailto:sage [2008/05/11(日) 12:01:33 ID:???] app/config/routes.phpにRoute::connectNamed(array(),array('argSeparator'=>'=')); を追加
796 名前:794 mailto:sage [2008/05/11(日) 13:42:34 ID:???] >>795 Router::connectですね。 ふぉぉ、すぐに答えていただきありがとうございます! PC側の方もちょっと調整が入りますが、おかげで解決しました!
797 名前:nobodyさん [2008/05/12(月) 02:29:40 ID:8yg2YXGe] CakePHP1.2のバリデーションについてよく整理されたマニュアルとかってないかな バリデーションルールが多様になったほかに、create時update時それぞれに有効無効に できるなんてこと知ったのだけど、その他含めてちゃんとまとまった情報ってないかな
798 名前:nobodyさん mailto:sage [2008/05/12(月) 18:22:39 ID:???] AuthComponentsで、ユーザー情報を取得し直したいとき、どのようにすればよいでしょうか? たとえば、 ログイン後にユーザーメニューからユーザ名の変更などを行った場合、 セッションには変更前のユーザ名が格納されているため、 ヘッダーなどに表示されている 「ようこそxxさん」のような表示が変わらない、ということになってしまいます。 いちおうの解決策としては、 セッションにはIDのみを格納しておいて、 app_controllerで 毎回、$this->User->findByIdしてセッションに記憶させるという方法をとっていますが、 あまりスマートではありません; ユーザ名の変更処理の直後のみユーザ情報を取得しなおしたいのですが、 なにかよいアイデアはないでしょうか?
799 名前:nobodyさん mailto:sage [2008/05/12(月) 20:51:58 ID:???] >>798 なんとなくでレスしてるが変更と同時にセッション内容も書き換えればいいんじゃないの?
800 名前:nobodyさん mailto:sage [2008/05/12(月) 22:27:51 ID:???] 公開用Webサイトに1.2系使ってる人っている? DBからデータをviewで表示するだけなら1.2でも大丈夫かな? 現在は1.1で運用中。 多言語対応が1.2でやりやすいのなら、1.2で作りかえるんだけど。
801 名前:nobodyさん mailto:sage [2008/05/12(月) 22:35:05 ID:???] >>800 俺はやっちゃったw 半年ぐらいCakePHP使っていて、コアの中まで見てると 大丈夫なんじゃないかなぁと思う。 バグではないが、ベータ版だから仕様が変わるのが ちょっとネック。
802 名前:794 mailto:sage [2008/05/13(火) 00:21:01 ID:???] >>800 いま、2ちゃんねるのレシピ集のサイトをCakePHP1.2で作ってます。 paginatorなどが使いたかったのと、バグっても差し支えないので。 で、ひとつバグらしきのに当たりました。 先に書いた通りのページを参考に、URLルーティングのprefixを使って 携帯用とPC用のページを作り分けしたのですが、この状態でpaginatorを使うと、 PC側のページで、$paginator->prev、nextで何故か携帯用のURL (/m/:controller・・・)へ飛ばされる事象が。 prefixを設定する前は発生していませんでした。 原因は不明ですが、これまた何故か$paginator->optionsの設定次第で 事象が発生したりしなかったりするので、発生したPC用ぺージでは、 $paginator->options(array('url'=>array("test" => 'test'))) と、ダミーのURLオプションを追加してごまかしています。
803 名前:nobodyさん mailto:sage [2008/05/13(火) 02:42:36 ID:???] 1.2の正式バージョンていつごろ出るのかな? 乗り換えるべきかどうか迷う・・・
804 名前:nobodyさん mailto:sage [2008/05/13(火) 13:48:12 ID:???] >>800 cakephp 1.1 も 1.2 も両方開発してアップしてますけど両方問題ないですよ。 ただ、モバイルサイトも作ろうと思えば 1.1 の wevservices が便利です。
805 名前:nobodyさん mailto:sage [2008/05/13(火) 18:13:48 ID:???] 1.2じゃなきゃ使いたくないズラ
806 名前:nobodyさん mailto:sage [2008/05/13(火) 19:48:08 ID:???] 画像表示系のコンポーネントを作って使うとき、 最後にheaderでContent-typeなどを指定するわけですが、 controller.phpのheader(”location...とかぶってしまって、エラーが出てしまいます。 みなさんはどのように処理しているのでしょうか? わかりずらくてすみません・・・;
807 名前:nobodyさん mailto:sage [2008/05/13(火) 19:56:04 ID:???] >>806 わかるわかる。 <img src="hoge.php?="> みたいなので読み出すやつでしょ? 僕はギブアップしましたね。 ttp://www.hideblog.net/thumbnails/ を使ってます。
808 名前:806 mailto:sage [2008/05/13(火) 20:02:52 ID:???] >>807 それです! わかってもらえて安心しました。 リンク先のものは、キャッシュに保存してそれを表示する、というものでしょうか? これはこれで便利ですが、やはりできればストレートに表示したいですね・・・
809 名前:nobodyさん [2008/05/13(火) 22:25:09 ID:Akbr9Dkj] >>806 ob_clean()はどうでしょう。
810 名前:nobodyさん mailto:sage [2008/05/13(火) 22:27:45 ID:???] >>807 まったくもって意味がわかりませんが たぶんこれで解決でしょう。 www.ideaxidea.com/archives/2008/01/cakephpcsv.html
811 名前:nobodyさん mailto:sage [2008/05/14(水) 09:31:44 ID:???] CakePHPの話題ではないかもしれませんが・・・ たとえばタスクをステータス別に表示する場合 コントローラ側で、 $this->set('yet_tasks', $this->Task->findAllByStatus('yet')); $this->set('done_tasks', $this->Task->findAllByStatus('done')); のように二度取得するのと、 $this->set('tasks', $this->Task->findAll()); として、 ビューで foreach ($tasks as $task) { if ($task['Task']['status'] == 'yet') { echo .... とするのでは、 どちらのほうがパフォーマンスが優れているのでしょうか? ご教授お願いします。
812 名前:nobodyさん mailto:sage [2008/05/14(水) 09:48:17 ID:???] どっちもだめ
813 名前:nobodyさん [2008/05/14(水) 09:49:25 ID:XltYBCAy] 前者のほうが毎回DBアクセスが発生するため速度という点でのパフォーマンスは悪いでしょうね。 後者のほうは、、ビューにあまりそこまで複雑なロジックを記述することによるコードの効率の悪さ という点でパフォーマンス難ありかも。 対象となるデータ量次第だけど、そこまでデータが多くなくてサーバのスペックが十分であれば前者の方が コーディングは早いんじゃね?個人的な意見だけど。
814 名前:nobodyさん mailto:sage [2008/05/14(水) 13:49:50 ID:???] 806です。 >>809 >>810 その方法は試してませんでした。 次回やってみようと思います。 ありがとうございます。
815 名前:nobodyさん mailto:sage [2008/05/14(水) 14:46:18 ID:???] デザイナーの要望に応えてちょちょっと変更するときなんて、 viewいじった方が早かったりするんで、 ついついやっちゃうんだよなぁ。 んで、気づいたらviewがえらいことにw
816 名前:nobodyさん mailto:sage [2008/05/15(木) 00:40:28 ID:???] CakePHPかRuby on Railsかで迷ってます。 サーバー関連の知識が全くないのですが、 アプリ完成後の公開寸前で困らないためには、 CakePHPを選んでおいたほうが、すんなり公開できるでしょうか?
817 名前:nobodyさん mailto:sage [2008/05/15(木) 00:57:18 ID:???] >>816 どっちも自分で試したほうがいいと思う。 俺は慣れてるからCake好きだけど。 最低限のアプリ作って鯖置くまで試してみる事をオススメする。
818 名前:816 mailto:sage [2008/05/15(木) 01:04:37 ID:???] >>817 レスありがとうございます。 Cakeならば格安のレンタルサーバで試してみることもできるのですが、 Rubyとなるとそこそこ値の張るところでないとダメみたいで、 それだけのお金を出して、設置できなかったとなると・・・ 1.2の安定版ももうすぐみたいですし、 やっぱり初心者にはCakeなんですかねぇ・・・
819 名前:nobodyさん mailto:sage [2008/05/15(木) 01:14:45 ID:???] >>818 つ仮想サーバ または 適当な空きマシンでlinux
820 名前:nobodyさん mailto:sage [2008/05/15(木) 17:54:14 ID:???] レンタルサーバーで問題なのはお金よりも むしろサーバーを管理できるかどうか。 www.fs-virtual.jp/spec/hikaku.html 945円/月〜 www.tsukaeru.net/plans/vps/ 2480円/月〜 www.ymc.ne.jp/service/managed/plan/index.html 4950円/月
821 名前:nobodyさん mailto:sage [2008/05/15(木) 21:43:23 ID:???] ☆ チン ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< 1.2まだー? \_/⊂ ⊂_)_ \_______ / ̄ ̄ ̄ ̄ ̄ ̄ ̄/| |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| | .|/
822 名前:nobodyさん mailto:sage [2008/05/19(月) 16:23:52 ID:???] MediaView(/cake/lib/view/media.php)ってどう使うんだろう? dsi.vozibrale.com/articles/view/mediaview-is-a-bleeding-bastard bin.cakephp.org/view/1026359650 を読む限り、特殊なファイルをダウンロードさせたいときとかに使うみたいだけど、 適当に読む限りファイルを出力するヘッダー情報の段階のことしか書かれていない。(あ、Viewの部分だから当然か) おそらく、データーベースからグラフをGDとかでスクリプト側で作ったものを表示する場合なんかで 使うんだろうけど、このスクリプトで合成した画像のバイナリデーターはどのタイミングで、どこの関数に格納すればいいのやら?
823 名前:877 [2008/05/20(火) 09:40:48 ID:xs/omlLe] IP/controller/ にアクセスするとIP/controller/index が デフォルトで実行されますけど、このアクションを変えるには どうしたらいいですか?
824 名前:nobodyさん mailto:sage [2008/05/20(火) 11:01:51 ID:???] >>823 cakephp.jp/doc/ch04s03.html かな
825 名前:nobodyさん mailto:sage [2008/05/20(火) 11:16:01 ID:???] CakePHP 1.2 stable coming soon と言ってるから、そろそろ 1.1 -> 1.2 移行手順をまとめたいな 絶対に手を入れるところ 推奨されているところ とか はまりポイント とか
826 名前:nobodyさん mailto:sage [2008/05/20(火) 11:38:08 ID:???] ttp://puyo2.upper.jp/cake/ のPDFを中心に ■絶対に手を入れるところ ・設定ファイルの変更(Warning出しながら動くけど) # /app/config/core.php define('DEBUG', 1); → Configure::Write('debug', 2); → Configure::write('Security.salt', 'your original string'); # add ・ヘルパー変更に伴い、view全般 非推奨または廃止されたもの $html->input $html->submit $html->tagErrorMsg etc... 新たに強化・追加されたもの FormHelper PaginatorHelper XMLHelper ■推奨されている ・validatesに引数を渡さない $this->ModelName->validates($this->data); → $this->ModelName->data = $this->data['ModelName']; → $this->ModelName->validates(); ・viewの拡張子 action_name.thtml → action_name.ctp 間違いあったら訂正よろしく
827 名前:nobodyさん mailto:sage [2008/05/20(火) 13:22:09 ID:???] find系もなんか修正あったんじゃなったけ?
828 名前:nobodyさん mailto:sage [2008/05/20(火) 19:13:39 ID:???] 検索してもうまく見つけられなかったので、教えてください。 SELECT * from `Model` WHERE ( `Model`.`field_1` like '%xxx%' OR `Model`.`field_2` like '%xxx%' ) AND `field_3` = 'yyy'; みたいなSQLを発行したい場合の$conditionsの指定はどうしたら良いのでしょう? また、 SELECT * from `Model` WHERE concat( `Model`.`field_1` , `Model`.`field_2` ) like '%xxx%'; というのも知りたいです。
829 名前:nobodyさん [2008/05/20(火) 19:19:52 ID:wZOYKZBI] バージョン1.2のAuthComponentでの認証で二重ログインを防ぎたいんだけど、 良い方法か参考ページがあったら教えて下さい。
830 名前:nobodyさん [2008/05/21(水) 01:03:54 ID:+T6Kz2/1] CakePHPってDBのカラム名まで縛るのね。 その時点で候補から外れたね。
831 名前:nobodyさん mailto:sage [2008/05/21(水) 01:16:01 ID:???] >>830 さようなら。 その縛りなしで行こうと思えば行けるんだけどな。 じゃぁの。
832 名前:nobodyさん mailto:sage [2008/05/21(水) 01:57:45 ID:???] >>830 そんなに大変? たしか、RoRでもあったと思うけど。 idとcreatedとmodifiedくらいしか意識した事ないけど、 他にもあるのかな?
833 名前:nobodyさん mailto:sage [2008/05/21(水) 02:29:51 ID:???] というかしばるから便利なわけですが
834 名前:nobodyさん mailto:sage [2008/05/21(水) 10:27:32 ID:???] >>832 name or title フィールドでgenarateListが自動的にidと配列を返す あとは、xxx_id とか xxx_yyy とかのアソシエーション系かな? いずれにせよCoCの理念に同調できない人はRoRをはじめとしたフレームワークは無理だわな。 RoRではなく、Cakeスレに書き込む>>830 に乾杯
835 名前:nobodyさん mailto:sage [2008/05/21(水) 12:50:06 ID:???] > name or title フィールドでgenarateListが自動的にidと配列を返す そういえばそんなものもあったね。1.2では find('list')にかわるわけだけど。 ソース見たけど、1.2betaの段階では、フィールド名指定する方法 無かった気がする。なんでだろうね。 結局は、genarateListを1.2で動かしたときの警告の通り find('all')の検索結果をSet::combine($results, $keyPath, $valuePath); しているだけなんで、自分でやればいいんだけどね > あとは、xxx_id とか xxx_yyy とかのアソシエーション系かな? これはなぁ・・・みんな同じような名前のつけ方しない? ○○テーブルのIDなんだから○○_idって。
836 名前:nobodyさん mailto:sage [2008/05/21(水) 18:07:50 ID:???] カラム名とか考えるの苦手なんで縛られてた方が楽だな俺は。 コントローラ名とかメソッドの名前とか考えるのホント嫌。かっこいい名前考えるセンス無くて。
837 名前:nobodyさん mailto:sage [2008/05/21(水) 18:10:51 ID:???] スペル調べたりするのも面倒だから、ローマ字とかw
838 名前:nobodyさん mailto:sage [2008/05/21(水) 18:29:28 ID:???] たしかに項目全部のスペル調べるのって時間かかるよなw 非英語圏の俺涙目
839 名前:nobodyさん mailto:sage [2008/05/21(水) 22:53:45 ID:???] >>838 あれ、こんなところに俺がいるぞ?w 最近、アルクで調べるようになって、ちょっと楽になった。 ttp://www.alc.co.jp/ カラム名は適当な英語でいいが、テーブル名はきちんとした英単語になってないと、 単複の変化がねぇ。。。
840 名前:nobodyさん mailto:sage [2008/05/21(水) 22:58:34 ID:???] ローカルに辞書ソフト入れておいたほうがいいぞ。 どうもウェブだと時間がかかる。 おれはMS Officeについていたbookshelfを使っている。
841 名前:839 mailto:sage [2008/05/21(水) 23:38:50 ID:???] >>840 Bookshelfか。懐かしいなぁ。 Bookshelfもいいんだけど、アルクは例文がいろいろ出てくるので、 そこがおすすめ。 たしかにローカルの方が速いけどね。
842 名前:nobodyさん mailto:sage [2008/05/22(木) 00:42:45 ID:???] >>839 俺発見!
843 名前:nobodyさん mailto:sage [2008/05/22(木) 09:57:07 ID:???] □cake.phpがapp/webroot以下のsqliteファイルを見てない? sqliteファイル(app/webroot/cake.sqlite)を用意してから cake.phpを実行しているけどエラーメッセージが出て怒られる。 sqliteファイル(app/webroot/cake.sqlite)を ./cake.sqliteに移動してやると「Bake All complete」。 □エラーメッセージ $ php cake/console/cake.php bake all Post ... Error: Missing database table 'posts' for model 'Post' □app/config/database.php <?php class DATABASE_CONFIG { var $default = array( 'driver' => 'sqlite', 'persistent' => false, 'host' => 'localhost', 'port' => '', 'login' => '', 'password' => '', 'database' => 'cake.sqlite', 'schema' => '', 'prefix' => '', 'encoding' => '' ); } ?>
844 名前:nobodyさん mailto:sage [2008/05/22(木) 13:44:12 ID:???] 英語の豆知識 Data : 複数形 Datum : Dataの単数形 CakePHPやるまで知らんかった。。。