【PHP】フレームワーク CakePHP 3ホール目【本命】
at PHP
1:nobodyさん
08/03/14 15:16:00 HF9x5ODX
URLリンク(www.cakephp.org)
10分で作るCakePHPアプリ for Windows
URLリンク(p4life.jp)
マニュアル日本語化
URLリンク(www.cakephp.jp)
日本語フォーラム
URLリンク(cakephp.jp)
あとこのへんとか(初心者向けTIPS)
URLリンク(www.avatarfinancial.com)
CakePHP入門リンク集
URLリンク(pub.studio15.jp)
【PHP】フレームワーク CakePHP 2ホール目
スレリンク(php板)
【PHP】フレームワーク CakePHP
スレリンク(php板)
2:nobodyさん
08/03/14 15:46:16
>1
乙。
3:nobodyさん
08/03/14 18:11:15
アソシエーションしたモデルをfindAllなどで持ってくると、
いろんな構造のデータになるけど、どんなパターンがあるのかな?
ちょっと見にくいだろうけど、ありそうなのを組み合わせてみた。
この結果から、配列.Model.・・・、Model.Model.・・・、Model.field、Model.配列.field の
パターンに大別できると思っている。 Model.配列.配列.field なんてのは無い。
そしてキーの先頭が大文字ならモデル名、数値なら配列、
先頭が小文字ならフィールド名と判別できると思っている。
Model::aliasとかあまり使ってないんだけど、これであってる?
何の為にこれを調べているかというと、アソシエーションでごっそり取ってきた
全データの中で、特定モデルの特定の型(たとえば日付)のフィールドだけ変換したいっていう場合に
array_walk_recursiveみたいなのがあればやりやすくない?という話
その下調べ
4:3
08/03/14 18:11:43
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さん
08/03/15 03:10:39
こういう学習コストを考慮しても、ありがたみがあるの?
6:nobodyさん
08/03/15 04:05:03
学習コスト < 自分で考え設計し開発するコスト
長くやっている人は、すでに自分で考え設計し開発しているから、
学習コストのほうが高いように錯覚するかもしれないが
本来は、自分でやるほうがコストは大きい。
7:nobodyさん
08/03/15 04:29:13
仕様書に機能追加や修正するだけの作業で1日が費やされた
最終的にこれをコードで処理してやらなければならないんだが
どんだけ時間かかるんだろ怖いよ
8:nobodyさん
08/03/15 04:31:23
貧乏暇無しや、この蟻地獄からなかなか抜け出せへん
気晴らしにコーラでも買いに行く
9:nobodyさん
08/03/15 08:17:47 4Bb0W2wl
で、結局どれほどの負荷がかかるとメモリ食い潰す訳?
アクセス数と処理内容は?
10:nobodyさん
08/03/15 09:48:29
>>9
うるさいなぁ。
CakePHPはメモリ不足で落ちる。何をやっても落ちる。
それだけだよ。ソースはぐぐれ。
11:nobodyさん
08/03/15 10:04:27
>>9
アクセス数とかじゃなくて、モデルのオブジェクトにしこたま
データを溜め込んだりする仕様になってるから、データ量が増えて
閾値をこえると落ちるって感じかなぁ。
初めはそんなこと考えなくてもいいと思うけど・・・
12:nobodyさん
08/03/15 12:47:39
メモリの8Mリミットオーバーのエラーを見たのは
ぶっちゃけCakePHPがはじめてw
13:nobodyさん
08/03/15 12:49:38
こんな高負荷なものは自社で運営は間違ってもしない
やるならCIを負荷を考慮して拡張していく
14:nobodyさん
08/03/15 12:53:15
>>11
アソシエーションしまくるとやばいやんw
15:nobodyさん
08/03/15 12:57:52
なんでこんな不完全なフレームワーク流行してんだよ。
流行て何でも肯定されちまうから怖いよな。
流行についていかねば、食えないから仕方ないけどな
16:nobodyさん
08/03/15 14:20:17
で、結局、どういうコードを書けば落ちるんだよ。
その具体的がまったくないよね。
これじゃウソだと思われるのが当然だし、
仕方が無い話だよね。
17:nobodyさん
08/03/15 14:21:14
>>15
> なんでこんな不完全なフレームワーク流行してんだよ。
世の中に完全なフレームワークは無い。
もしあったとしたら、そのフレームワークは
バージョンアップしない。
18:nobodyさん
08/03/15 14:25:44
なんでメモリ不足で落ちるということを
信じてもらえないのだろう?
俺、何もしてないのに・・・
19:nobodyさん
08/03/15 14:47:28
笑い殺すきかw 何もしていないから信じてもらえないんだろw
メモリ不足で落ちるということを証明する義務があるのに、
それを証明しない、何もしないから信じてもらえない。
20:nobodyさん
08/03/15 15:39:59
>>19
他人の作ったプログラム内でHello word書いて落ちるんだから
そう簡単には証明できねーよ、素人発言にも度が過ぎる
21:nobodyさん
08/03/15 15:44:29
メモリオーバーのエラー文が出てるんだから
証明てエラー画面のキャプチャー画像とれってことか?w
22:nobodyさん
08/03/15 15:47:01
20に同意
19はPHPのことあまり知らなさそうな感じが・・・
23:nobodyさん
08/03/15 15:48:52
たしかにwの数と頭の悪さは比例するからな
24:nobodyさん
08/03/15 16:33:57
自演ワロタw
>>20
そう簡単に証明できない?
なぜ? 簡単にメモリ不足になるんじゃなかったのか?
自分で言っていて矛盾に気づかない?
25:nobodyさん
08/03/15 16:43:49
>>21
証明とは、他人がやっても再現できるだけの
コードや環境設定に決まっている。
Hello worldぐらいなら君でも掲示板にもかけるはずだが?
26:nobodyさん
08/03/15 17:14:17
とりあえずphpinfo()と問題のコントローラだけ貼ってみ
27:nobodyさん
08/03/15 17:23:01
>>25
常識の観点がずれてる
28:nobodyさん
08/03/15 17:24:29
>>24
激しく意味不明なんですが。。。
29:nobodyさん
08/03/15 17:26:40
「落ちる」を「俺は空を飛べる」に置き換えてみるとどうだろう。
30:nobodyさん
08/03/15 17:28:21
>>25
証明とか言葉の使い方がおかしい
技術者の使う言葉じゃねーな
31:nobodyさん
08/03/15 17:29:55
小学生がよく証明しろとか証拠みせろとかよくいうけど
そのレベルだろうな
32:nobodyさん
08/03/15 17:31:24
>>29
どんななぞなぞですか?
33:nobodyさん
08/03/15 17:32:16
他人に作ってくれと言われるサイトだと、すんなりできあがるのに。
自分のサイトを作ろうと思うとこだわりすぎてなかなか開発が進まない。
大工さんは自分の家を建てようとするとこだわりすぎて会社がつぶれるってこともあるらしいけど。
わかりますかね?この気持ち。
34:nobodyさん
08/03/15 17:33:07
遠まわし表現すぎてコミュニケーションレベルが激しく低いんですが
35:nobodyさん
08/03/15 17:39:44
なんかめんどくさいから別の話して↓
36:nobodyさん
08/03/15 17:44:25
インターバル2分以内わろた
37:nobodyさん
08/03/15 18:11:15
PHP4でメモリ8MB(デフォルト)で作っているけど、
メモリ不足になったこと無いんだが?
作り方が悪いんじゃね?
38:nobodyさん
08/03/15 18:17:57
すごいなこれ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さん
08/03/15 19:16:04
そんな糞フレームワークなら、公開すらされなそうなもんだが、なんで世に出てるの?
開発元は認識してないバグなの?
40:nobodyさん
08/03/15 19:21:27
symfonyでよくメモリ不足に陥ってこのページ見つけた。
URLリンク(www.sooey.com)
memory_get_peak_usageでメモリ使用料を調べられるが、
それでCakePHPを調べたら、使用量は4M程度だったよ。
symfonyよりは少ないね。
41:nobodyさん
08/03/15 19:59:52
セットアップして空のアクション実行してview(+layout)を表示する。
php 5.2.5
cake 467.5KB, symfony 674.6KB
フレームワークとしてはデフォルトでこんなもんなんだから
メモリ不足というのはアプリケーションの実装の問題だと思うのだが。
DB周りとか、大抵使われるアドオン・プラグインとかも含めないとなんとも言えないってのはあるけど。
42:nobodyさん
08/03/15 21:05:39
フレームワークが糞なんじゃなくてメモリ不足云々言ってるやつが糞
メモリ不足とか言ってる香具師はどんな糞コード書いてるの?w
43:nobodyさん
08/03/15 21:06:39
>>41
その数字はデバッグ出してんの?説明不足すぎやで
44:nobodyさん
08/03/15 21:11:12
他人の書いたコード利用するくらいだから
42も含めて、みんな糞コードくレベルやろ
CakePHPで糞コード書くとメモリ不足になる確率は高いわな
45:nobodyさん
08/03/15 21:13:30
どう考えてもフレームワークが糞としか考えられん
相当に意識して糞コード書かないと8Mオーバーはむずいよ
46:nobodyさん
08/03/15 21:16:24
メモリ不足ならんやつはレンタルサーバーでデフォでメモリ無制限なってんの気づけよw
47:nobodyさん
08/03/15 21:17:54
そんなシビアに実装しないとメモリ不足になるんか
ろくでもないフレームワークやな
48:nobodyさん
08/03/15 21:19:20
初心者が無限ループ書きまくっても8M越えはむずいで
49:nobodyさん
08/03/15 21:24:48
PHP5あたりからメモリ食うような仕様になってんか
てことはPHP4つかってるやつだなメモリ不足おきんのは
50:nobodyさん
08/03/15 21:26:39
PHP 5.2.1ではさらにリミットが128Mまで引き上げらたんだってよ!
リミット8MのままPHP 5.2.1使えばメモリ不足になる可能性は高いわな
51:nobodyさん
08/03/15 21:34:35
>>45
> 相当に意識して糞コード書かないと8Mオーバーはむずいよ
簡単だよ。
たとえば、8Mを超えるようなファイルを受信したり、
また出力すればいいだけ。
っていうか、もうすでに8Mにはならないという結論がでている
話なんかどうでもいいんだがね。
52:nobodyさん
08/03/15 21:36:48
>>50
それが答えだろう。PHP5でメモリ使用量が大幅に増えて
それに伴って、デフォルトのリミット値も増えているのに、
PHP4からアップグレードしたとかでPHP4の設定のまま使っている奴が
メモリ不足と出ているだけ。
フレームワークではなく、PHPの問題。
53:nobodyさん
08/03/15 21:37:19
> PHPの問題
ただしくは、PHPとそれを使っているユーザーの問題。
54:nobodyさん
08/03/15 21:38:08
どうやら頭の中のメモリが不足してるヴォケが多いようだなw
55:nobodyさん
08/03/15 21:38:50
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さん
08/03/15 21:40:39
あはは、どういうコードでメモリ不足と出るということを
記憶する脳のメモリもないということか。うまいなぁ。
メモリ不足にるというのなら、そのコードを覚えてここで書けよw
57:nobodyさん
08/03/15 21:41:32
メモリ使用量で言えばsymfonyのほうが圧倒的に多い
そしてsymfonyは処理速度も最悪
58:nobodyさん
08/03/15 21:44:17
>>48
> 初心者が無限ループ書きまくっても8M越えはむずいで
お前はプログラミング素人だな。
そもそも無限ループじゃメモリ使用量は増えないだろ。
ループの中にメモリを消費していくコードが含まれていれば
メモリ使用量は増えるが、それだと難しいという話にはならない。
時間がたてばいずれ8Mを超える。
59:nobodyさん
08/03/15 21:45:25
>>57
symfonyはCakePHPだと配列のデータが
オブジェクトになっているからね。
それは仕方が無い話。
60:nobodyさん
08/03/15 21:52:56
>>54のカキコが的を突いていてオモロス
61:nobodyさん
08/03/15 21:58:18
脳内メモリが不足している人におすすめのフレームワーク
スレリンク(php板)
62:nobodyさん
08/03/15 22:01:51
>>59
オブジェクトの方がメモリ食わんよ
63:nobodyさん
08/03/15 22:02:57
アホしか書き込みせんから、時間の無駄じゃこのスレ
64:nobodyさん
08/03/15 22:03:54
フレームワークが糞だから住人も糞が集まる
これは仕方のないこと
65:nobodyさん
08/03/15 22:07:39
CakePHPは使ってるやつは
脳内のメモリが不足してるという結論になりました
66:nobodyさん
08/03/15 22:10:56
こんなメモリ食うフレームワークを採用してる有名サイトあるの?www
どうでもいいクライアント用のフレームワークだろwww
67:nobodyさん
08/03/15 22:12:26
>>65
CakePHPは使ってるやつは ×
CakePHPを使ってるやつは △
CakePHPを糞と言ってるやつは ○
脳内メモリが不足してくると日本語もおかしくなっているという法則
68:nobodyさん
08/03/15 22:12:32
CakePHPて小規模フレームワークのくせに
なんでsymfonyとメモリ不足量の競い合いしてんだよw
69:nobodyさん
08/03/15 22:15:21
>>66
つ p://cakephp.seesaa.net/article/30805902.html
70:nobodyさん
08/03/15 22:16:09
どうでもいいクライアントには丁度いいフレームワークだよ
71:nobodyさん
08/03/15 22:22:04
すぐメモリ不足おこすのはCakePHPの問題だ
どんな糞コード書いてても
CakePHP以外でこんなこと今までおきなかった
72:nobodyさん
08/03/15 22:26:10
脳内メモリが不足してる香具師は何でも他人の所為にする事しか出来ないようだな
>>71
じゃあそのCakePHPの場合だけ落ちるっていう糞コードをさっさと書けよボンクラ
73:nobodyさん
08/03/15 22:31:54
どんだけ最低最悪な糞コード書いてても
symfony,CI,mojaviは落ちなかったけど
CakePHPだけはどんなコード書いてもすぐ落ちる
最悪なフレームワークです
74:nobodyさん
08/03/15 22:34:03
>>73
脳内メモリが著しく枯渇してるモマエにはすぐ上に書いてある文章も読めないのか?(藁
75:nobodyさん
08/03/15 22:35:35
CakePHPの採用サイトみたけど有名なとこはないな
信用の無いフレームワークですね
76:nobodyさん
08/03/15 22:37:25
ひとりごとにやけにかみつくメモリ不足の方がおられますね
77:nobodyさん
08/03/15 22:39:22
CakePHPだと小規模向けのサイトじゃないと無理か
だったらCI使ってた方がいいやん
何なのCakePHPの存在意義て?
78:nobodyさん
08/03/15 23:01:27
CI使ってみたいんだけどどんな感じ?
79:nobodyさん
08/03/15 23:10:48
>>76
全世界の人間に見えるように書いてるもんに独り言も糞もあるかよw
さっさとCakePHPの場合だけ落ちるコードを書いてみろや
80:nobodyさん
08/03/16 00:28:57
>>78
激しく糞。
つーか、ここでCIのことを語りだすやつは、
CakePHPがメモリ不足になりやすいとデマ流している奴だから。
81:nobodyさん
08/03/16 00:29:46
CI厨、CakePHPに激しく嫉妬(笑)
82:nobodyさん
08/03/16 00:33:53
CakePHPのメモリ不足をまだデマだと思ってるやつがいるなんて信じられん
83:nobodyさん
08/03/16 00:37:26
デマという言葉がいやなら、
メモリ不足になるというコードがでていないのに、
メモリ不足になるというコードが存在すると主張している
と言い換えてもいいけど?
こっちなら間違ってないでしょ?
84:nobodyさん
08/03/16 00:41:22
CI厨 必死(笑)
85:nobodyさん
08/03/16 00:42:48
>>73
> どんだけ最低最悪な糞コード書いてても
> symfony,CI,mojaviは落ちなかったけど
常識で考えて、ありえない話。
メモリ制限8Mで10Mのデータをメモリに読み込むような
プログラムを書けば絶対落ちる。
マジレスしたらだめなのか?w
86:nobodyさん
08/03/16 00:49:54
結論
Q : cakephp メモリ不足になるんですが
・他のフレームワークを使う
・フレームワークを使わずコーディングする
・ticket 投げてメモリを喰わないように cakephp を作ってもらう
どれかを選らんで下さい。
87:nobodyさん
08/03/16 00:52:50
>>86
必死wwwwwwwww
88:nobodyさん
08/03/16 00:54:42
ticketを投げようにも、再現コードがでていないから
投げようがないな。デマといわれて終わるだけだ。
悔しいなぁ。
なんで、なんでメモリ不足になるという
証拠がないんだよ! ありえない。
これじゃCakePHPを叩けない!
89:nobodyさん
08/03/16 00:58:35
ticketだしますから、
メモリ不足になるという
再現コードお願いします。
それがないと信用してもらえません><
90:nobodyさん
08/03/16 01:10:03
なんか必死に書き込んでるのがいるwww
91:nobodyさん
08/03/16 01:11:43
再現コード厨きてんねw
92:nobodyさん
08/03/16 01:15:35
はやく再現コードかきこんでねw
93:nobodyさん
08/03/16 01:15:51
hello wordでもメモリ不足でおちる
CakePHPはそういうフレームワーク
94:nobodyさん
08/03/16 01:17:05
hello worldって何かしってるのかな?
知っていれば落ちるはずがないことがわかるはずなんだが。
それがわからないってことは馬鹿ということだよ。
95:nobodyさん
08/03/16 01:18:12
大きすぎるうそは逆効果だと思うんだが(笑)
96:nobodyさん
08/03/16 01:18:14
echo"92の必死ぶりがイタイデス";
これでメモリ不足で落ちます
CakePHPはこんなフレームワークです
使うのはやめましょう。クライアントがかわいそうです
97:nobodyさん
08/03/16 01:19:44
echo"92の必死ぶりがイタイデス";
ためしたけど落ちなかったよ。
98:nobodyさん
08/03/16 01:20:34
だから何も書いてなくてもデバッグ出力すると落ちるんだよボケ!!
99:nobodyさん
08/03/16 01:20:46
ためしたのかよw
やる前から落ちないってわかるwww
100:nobodyさん
08/03/16 01:21:56
レンタルサーバーで落ちるわけねーだろうがよ
101:nobodyさん
08/03/16 01:22:13
何も書かないで、どうやってデバッグ出力なんかするの???
っていうかデバッグ出力するってどういうこと?
他のフレームワークと勘違いしてね?
きっとそのフレームワークだよ。メモリ不足で落ちるというのは。
102:nobodyさん
08/03/16 01:22:44
落ちないように業者が設定してくれてんの、わからんの?
103:nobodyさん
08/03/16 01:24:23 EXDzIJ8M
あー。なんか面白いことになっているな。
メモリ不足で落ちるとはじめに言ったのは俺なんだが、
あれ勘違い。俺のバグだった。
で、それに便乗して落ちる落ちる言っている奴がいるのか?
104:nobodyさん
08/03/16 01:24:44
だからCakePHPは使いものにならないんだよ
105:nobodyさん
08/03/16 01:25:25
?
106:nobodyさん
08/03/16 01:26:34
メモリ不足でよく落ちるから使いものにならんてこと
107:nobodyさん
08/03/16 01:27:00
落ちないよ?
108:nobodyさん
08/03/16 01:27:46
落ちなければこんなとこ書き込めねーよ
109:nobodyさん
08/03/16 01:28:08
落ちてないけど、書き込めるよ?
110:nobodyさん
08/03/16 01:28:27
おまえが落ちなくても俺は落ちてんだよ
111:nobodyさん
08/03/16 01:28:49
お前も落ちてないよ
112:nobodyさん
08/03/16 01:29:14
なんでこんなに糞なんだよ、メモリやけに使いやがって
113:nobodyさん
08/03/16 01:29:31
糞じゃないよ。メモリも使わないよ。
114:nobodyさん
08/03/16 01:30:21
hello word書いてメモリオーバーになったのは
CakePHPがはじめてだよ
115:nobodyさん
08/03/16 01:30:42
なんでこんなことになるん?
116:nobodyさん
08/03/16 01:30:53
お前、メモリオーバーになってないよ。
117:nobodyさん
08/03/16 01:31:19
>>115
CI厨のデマだからという結論らしいです。
118:nobodyさん
08/03/16 01:33:07
CakePHP重いと思わんの?サクサクしてる?w
119:nobodyさん
08/03/16 01:33:16
これで落ちなかったら俺の負けでいいよ。
class TestController extends AppController {
var $name = 'Test';
function index() {
echo 'Hello World';
}
}
120:nobodyさん
08/03/16 01:33:58 EXDzIJ8M
>>119
マジ落ちたwwww
121:nobodyさん
08/03/16 01:34:19
俺も落ちたね。
122:nobodyさん
08/03/16 01:34:23
落ちなかった
123:nobodyさん
08/03/16 01:35:06
墓穴?
103 名前:nobodyさん[] 投稿日:2008/03/16(日) 01:24:23 ID:EXDzIJ8M
あー。なんか面白いことになっているな。
メモリ不足で落ちるとはじめに言ったのは俺なんだが、
あれ勘違い。俺のバグだった。
で、それに便乗して落ちる落ちる言っている奴がいるのか?
120 名前:nobodyさん[] 投稿日:2008/03/16(日) 01:33:58 ID:EXDzIJ8M
>>119
マジ落ちたwwww
124:nobodyさん
08/03/16 01:36:23
>>119
メモリ1GBのLinuxにPHP4.5を入れているが、落ちたよ。
125:nobodyさん
08/03/16 01:36:34
とにかくhello wordだけでメモリ不足で落ちるのはホントだからな
126:nobodyさん
08/03/16 01:36:55
絶対信じろよ
127:nobodyさん
08/03/16 01:38:20
CakePHPはこんな糞フレームワークなんですよ!
結論がでたね
128:nobodyさん
08/03/16 01:38:32
で、それにかわるフレームワークなんだが、
CodeIgnitor なんてどうかな?
129:nobodyさん
08/03/16 01:39:10
CodeIgnitor。いいよね!
130:nobodyさん
08/03/16 01:41:35
いいんだよ!!ね!ねって!
131:nobodyさん
08/03/16 01:43:44
↓次の質問どうぞ
132:nobodyさん
08/03/16 08:13:02
何この流れ。くだらねえ。
133:nobodyさん
08/03/16 12:34:32
話し戻していいですか?
アソシエーションしたモデルをfindAllなどで持ってくると、
いろんな構造のデータになるけど、どんなパターンがあるのかな?
ちょっと見にくいだろうけど、ありそうなのを組み合わせてみた。
この結果から、配列.Model.・・・、Model.Model.・・・、Model.field、Model.配列.field の
パターンに大別できると思っている。 Model.配列.配列.field なんてのは無い。
そしてキーの先頭が大文字ならモデル名、数値なら配列、
先頭が小文字ならフィールド名と判別できると思っている。
Model::aliasとかあまり使ってないんだけど、これであってる?
何の為にこれを調べているかというと、アソシエーションでごっそり取ってきた
全データの中で、特定モデルの特定の型(たとえば日付)のフィールドだけ変換したいっていう場合に
array_walk_recursiveみたいなのがあればやりやすくない?という話
その下調べ
134:nobodyさん
08/03/16 12:34:56
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さん
08/03/16 14:39:55
落ちる落ちるってデマ情報流してるやつは何なの?
>>119-121
それで落ちるってphp.iniにどんな設定しとるんや?
まずは脳内メモリを増設したほうがいいんじゃね?(プ
136:nobodyさん
08/03/16 16:55:47
>>135
脳内メモリ増設したいんやが、空きが無いんや
137:nobodyさん
08/03/16 17:21:50
>>136
すでについとる容量の低いやつを全部外して
デュアルチャネル対応の容量大きいやつを増設したらええんや
そしたらCakeもサクサク、オマエの小汚い脳内もサックサク〜(* ^ー゚)
138:nobodyさん
08/03/16 17:40:40
>>137
おまえはCPU変えた方がよさそうだなw
139:nobodyさん
08/03/16 22:05:49
>>138
ツマンネー
140:nobodyさん
08/03/16 22:11:05
先輩方、マジ質問なんですが、自分はdreamweaver を使ってます。
ecripse って最近よく聞くんですが、 dreamweaver よりも開発効率いいんでしょうか。
よろしくお願いします。
141:nobodyさん
08/03/16 22:46:20
>>140
スレリンク(php板)
142:nobodyさん
08/03/16 22:54:10
Javaならエクリプス必須だけどPHPは秀丸で充分じゃね?関数少ないし。
143:nobodyさん
08/03/16 23:03:52
PHPフレームワークのCakePHPに相次ぐ批判の声
スレリンク(news2板)
とりあえず「脳内メモリがや〜」とか言ってる人は読んどいたら?
144:nobodyさん
08/03/17 00:45:30
>>119
私もこのコードを書いたら、彼女が出来ました!
145:nobodyさん
08/03/17 01:02:50
ここいる住人は全員初心者ばっかりくせーw
146:nobodyさん
08/03/17 01:03:05 BkHzbTOg
gzipの方のアーカイブって変なフォルダ入ってね?あれ何に使うの?
147:nobodyさん
08/03/17 01:06:46 BkHzbTOg
>>119
落ちなくて困っているんだけど、どうすればいい?
148:nobodyさん
08/03/17 01:23:22
結局CakePHPは糞フレームワークという結論でよろしいですね!
149:nobodyさん
08/03/17 01:23:58
>>148
ノープロブレム
150:nobodyさん
08/03/17 01:25:35
よろしいから、どっか行け、な。使わなくていいから。マジで。
151:nobodyさん
08/03/17 01:27:02
このスレを見てたら大手が採用しない理由がわかってきたw
152:nobodyさん
08/03/17 01:34:16
とりあえずCakePHPはよく落ちる糞フレームワークということを
みんなで中小企業にアピールしようぜ。
そしてもう二度と同じ被害者を生まないためにも
153:nobodyさん
08/03/17 01:44:22
嫉妬乙
154:nobodyさん
08/03/17 01:59:39
いや、マジで駄目だから使わないほうがいい。
使うのは駄目な俺だけでいい。
155:nobodyさん
08/03/17 02:09:58
この流れで落ちるとかいっても逆効果だろw
誰も信用してないよ。
156:nobodyさん
08/03/17 06:47:17
モデルにバリデーションとアソシエーションをがっつり入れた
超みにくいよw
157:nobodyさん
08/03/17 07:00:18
あぁ。だから俺はバリデーションをYAMLに書いて、
それを読み込むようにしている。
158:nobodyさん
08/03/17 15:09:42
フォームでURLの入力補助として
デフォルト値にhttp://をつけると
バリデーションで他の項目がひかかったときに
URLリンク(yahoo.co.jp)と入力していても
またhttp://のデフォルト値がはいる
デフォルト値は最初の画面だけ挿入したい場合はどうすればいいのですか
$form->input('TestUser.url', array('value'=>'http://')
159:nobodyさん
08/03/17 15:29:54
>>141
>>142
ありがとうございます!
160:nobodyさん
08/03/17 16:22:23
たった3日で150レスだと…?
161:nobodyさん
08/03/17 16:39:49
>>158
その辺て自動でやってくれないんだっけ?
再編集のときの話だったら、データ構造を見て本来はDBから持ってくるデータを用意しておいてあげればいい
またはデータが無いと判断したときだけ、value入れればいいんじゃね
162:nobodyさん
08/03/17 18:22:09
>>158
タイムリーだなw
俺も今同じようなことをやっていた。
最初はそのように、$form->inputに書いていたが、
同じようにダメだと気づいて、
コントローラで、(↓こんな感じ。適当に書く)
if(!empty($this->data)) {
if($this->Model->save($data)) {
・・・
} else {
・・・
}
} else {
$this->data['Model']['url'] = 'http://';
}
本当についさっき書いたコードなので、これで問題ないか深く考えていない。
163:nobodyさん
08/03/17 20:25:58
コントローラでやることじゃないなー
164:nobodyさん
08/03/17 21:47:14
>>163
プログラマならコードで示してね。
165:nobodyさん
08/03/17 22:07:27 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さん
08/03/17 22:16:46
>>165
まず該当箇所を見てみればいいと思うが
167:nobodyさん
08/03/17 22:21:02
>>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さん
08/03/17 22:28:21 6Wsl0FQ6
666:foreach ($objRegistryModel->_tableInfo->value as $tabl) {
801:foreach ($objRegistryModel->hasAndBelongsToMany as $relation => $relData) {
でした。何なんでしょうか。アソシエーションでしょうか。
169:nobodyさん
08/03/17 22:52:12
>>157
この辺りの辺、サンプルある?
もしあったら見せて欲しい。
昨日あたりからcakePHPを使い初めたのだけど、たしかにWebにあった
チュートリアルに沿って作ると、モデルがヴァリデーションだらけに
なりそうなので。
170:nobodyさん
08/03/18 00:22:51
>>169
YAMLの使い方ググれよ
171:nobodyさん
08/03/18 00:52:36
>>164
いちいちコード書かないとわからんのか
設計とかパターンとか学べ
172:nobodyさん
08/03/18 03:38:03
>>164
一行レスとか煽りに一々反応すんなよ
荒れるだけだよ
173:nobodyさん
08/03/18 04:22:49
つーかこんで良いんじゃねぇの?
controler
$url = ''URLリンク(;)
$data = $this->Model->ほげほげ();
if (unko) {
$url = $data["url"]
}
$this->set('url',$url);
view
$form->input('TestUser.url', array('value'=>$url)
174:nobodyさん
08/03/18 09:45:05 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さん
08/03/18 09:53:20
>>173
なにその汚ねーコードw
176:nobodyさん
08/03/18 09:54:14
>>173
それだけはありえん
177:nobodyさん
08/03/18 13:01:47
ありえんとかいってないで、
自分のコードをかけよ。
178:nobodyさん
08/03/18 13:03:45
初期値の設定は、前回入力値の設定と同じことなんだから
コントローラで設定すべきだよな。
ビューはただ表示するだけ。
179:nobodyさん
08/03/18 15:07:02
>>178
根拠の無い理由は自分の心の中でしまっとけな
180:nobodyさん
08/03/18 15:09:23
>>177
167に書いたよ、この美しいコードに反論あるんか?
181:nobodyさん
08/03/18 15:11:30
>>173
こんなコード書く奴がこのスレにいるとは
CakePHPの住人レベルて・・・
182:nobodyさん
08/03/18 15:13:24
明らかにPHP初心者がCakePHPから始めましたみたいなのが多いな
>>173を見て確信した
183:nobodyさん
08/03/18 15:20:33
ああ。ガチだな。
184:nobodyさん
08/03/18 15:59:35
最近10分以内に似たようなレスが連続で湧くな
185:nobodyさん
08/03/18 16:06:00
じゃあアンケートとります。
フォームの初期値はどこで設定すべきでしょう。
1.コントローラ
2.ビュー
3.モデル
4.モデルに初期値情報が有り、それをコントローラが取得してビューに渡す
俺は4。面倒だとか、フォームによって初期値が違う場合は1
186:nobodyさん
08/03/18 16:45:53
>>185
俺はビューかな。
187:nobodyさん
08/03/18 16:51:14
>>185
俺もビュー
管理するのが楽
コントローラーに書くとみにくくなる
ビューだと全くみにくくない、それどころか見通しがよくなる
188:nobodyさん
08/03/18 16:53:16
>>185
モデルをこれ以上見にくくするのはよくないよ
バリデータ
アソシエーション
バリデータ関数
これだけでもずいぶん見にくいのに
189:nobodyさん
08/03/18 16:54:16
コードの見渡しがよくなって
変更が楽な場所がベスト
190:nobodyさん
08/03/18 16:55:18
>>185
初心者の多いここでアンケートとっても意味が無いけどなw
191:nobodyさん
08/03/18 17:06:20
常識的に考えればビューだけど
ここは初心者が多いからね
192:nobodyさん
08/03/18 18:10:04
>>188
お前、まさか、それだけしかないんじゃないだろうな・・・
モデルは設定ファイルじゃないぞ。
ビジネスロジックを書く所がモデルだぞ。
193:nobodyさん
08/03/18 18:11:06
ビューは基本的に表示のみを行う場所。
初期値をビューで設定するのは変。
194:173
08/03/18 19:04:45
確かにてきとーに書いた部分はあるが
何でダメなの?因みにcakeは1週間ぐらいしかやってない
あとコントローラに初期値は
ロジックとviewの分離等から考えると微妙だが
めんどくさかったんだそこはごめんw
195:nobodyさん
08/03/18 19:29:58 5PAxNly0
なんでここって初心者しかいないの?
196:nobodyさん
08/03/18 19:38:40
なんでここって猿みたいに同じ事しか書けない人が多いの?
197:nobodyさん
08/03/18 20:28:19
>>193
smartyだってテンプレート側で初期値いれらるようになってる
おまえの頭が変
198:nobodyさん
08/03/18 21:23:10
>>193
携帯用サイト作るとわかると思うけどあんまりガンガン表示する内容まで
コントローラーで固めない方がいいよ。
携帯用サイト用の コントローラーまで作る羽目になるから。
199:nobodyさん
08/03/18 22:59:49
セッションって
$_SESSION[''][''] を直接使った方が早い感じがすんだけど、みんなどうしてます?
やっぱり $this->Session->read を使った方がいいんですかね。
200:nobodyさん
08/03/18 23:48:37
>>197
> smartyだってテンプレート側で初期値いれらるようになってる
入れられるようになっているからって、入れるべきということにはならないだろ?
モデルやコントローラ側で初期値入れられるようになっているんだしさ。
> 携帯用サイト用の コントローラーまで作る羽目になるから。
その理屈がよくわからん。初期値の話をしているのに
なんでもコントローラでやると拡大解釈してしてないか?
それにビューに書く場合、携帯用サイトとPC用サイトで分けるもんだから、
ビューに初期値を書いたら、コードが重複するじゃん。
だからビューだけはありえない。そう思わないか?
ちなみに、おれは初期値はモデルに書くもんだと思っているが。
201:nobodyさん
08/03/19 01:30:55
>>199
オブジェクトで呼んだ方がオーバーライドもできるし
後から制御するのが楽
202:nobodyさん
08/03/19 01:36:20
柔軟な制御をするためにデータはオブジェクト経由で呼ぶべき
オブジェクトで呼ぶことに意味がある
それは、オブジェクトにはいってるデータを
外から制御できるからだ
203:nobodyさん
08/03/19 07:53:45
>>201
>>202
cakephp やってて
「意味あるのかな・・・」と思ってましたけど、やっぱり意味があったんですね。
勉強になります。ありがとうございます。
204:nobodyさん
08/03/19 12:54:14
例えばCakePHPでブログシステムを作るとして、
ユーザ(usersテーブル)、投稿(commentsテーブル)が一対多の
関係にある時、あるviewで、
ユーザ1
コメント1-1
コメント1-2
コメント1-3
ユーザ2
コメント2-1
コメント2-2
コメント2-3
・
・
という表示をさせたいのですが、view、controllerをどう書いてよいか悩んでいます。
modelで、hasManyリレーションを貼るところ迄は合っていますか?
どこか、参考になるページがあれば教えて下さい。
205:nobodyさん
08/03/19 19:47:56
UserモデルにはhasManyプロパティを作ってcommentsを持っていることを示す。
CommentモデルにはbelongsToプロパティを作って、usersに依存していることを示す。
コントローラのアクションでUserモデルからデータを引っ張ってくる
アソシエーションによりCommentもくっついてくる。
コントローラのアクションで、引っ張ってきたデータを
ビューに詰め替える。
ビューは渡されたデータをぐるぐるして表示する。
206:nobodyさん
08/03/19 21:42:10
表示するユーザ数+1のクエリが発行されるからアクセス数の多い中規模〜大規模なサービスでは使えない。
この辺言及する人が少ないのはcakeユーザのレベルが低いからだろうか。
207:nobodyさん
08/03/19 22:11:32
> 表示するユーザ数+1のクエリが発行されるから
何を言っているんだ?
自分のレベルが低いと告白しているのか?
208:nobodyさん
08/03/19 22:21:01
>>206
だって、表示するユーザ数+1のクエリが発行されないから。
誰も指摘しないのは当たり前。
209:nobodyさん
08/03/19 23:03:06 XOo5uLlV
>>205
返信ありがとうございます。
> コントローラのアクションでUserモデルからデータを引っ張ってくる
> アソシエーションによりCommentもくっついてくる。
なるほど。
きちんとリレーションを設定すれば、コントローラ側ではUserモデル
からデータを引っ張るだけで、芋づる式にcommentsを取れるんですね。
> ビューは渡されたデータをぐるぐるして表示する。
今、$usersをforeachで回してる状態なんですが、これを$usersと
$commentsの二重ループにすればオッケーですかね。
ちょっとやってみます。
>>206
論点がずれてませんか?
そもそも、具体的なアクセス数、H/Wの規模を示さないと意味のない
指摘じゃないでしょうか。
この方法だと中規模以上に向かないから、この方法を使うといいよ、
と言うのならまだ分かるのですが。
210:nobodyさん
08/03/19 23:13:10
>>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さん
08/03/19 23:28:29
URLリンク(72.14.235.104)
そして、この 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さん
08/03/19 23:42:19
belongsToじゃなくてhasManyのこと言ってるんだけど。
参照の方向が違う。
213:nobodyさん
08/03/20 00:12:41
といわれてもなぁ、
hasmanyとかconditionsにどういうSQLで
JOINするかをSQLの断片で書いているしなぁ。
JOINしているとわかりそうなものだがなぁ。
214:nobodyさん
08/03/20 00:28:36
子はJOINできないじゃん。
結局「表示するユーザ数+1のクエリが発行される」が間違ってることは示せないんでしょ。
実際やってみてクエリログ見ればすぐ分かるはずなんだが。
215:nobodyさん
08/03/20 00:37:04
>>210
素人乙!
観点がずれてるよPHPの基礎からやりなおしてね
216:nobodyさん
08/03/20 00:40:19
1回のクエリで全てが補えることに超したことはない
その代わり複雑なSQL文を書かないといけないから
CakePHPの負荷よりも生産性というスタイルに合わないがな
ループの中でクエリをぐるぐる発行しまくると負荷が高くなる
217:nobodyさん
08/03/20 00:43:11
>>215
結局こういうのが出てくるのか・・・
ほんとバカばっかだなー
それじゃ論点がどうずれてるか説明もらってもいい?
210での発言にphpの基礎は全く関係ないから、それのほうが論点ずれてると思うのだが。
んで、実際お前のcakeではこの処理でどういうクエリが発行されんの?
218:nobodyさん
08/03/20 00:47:43
>>209
よほどのことがない限り
ループの中にループは入れない方がいいよ
負荷がかかるからね。
219:nobodyさん
08/03/20 00:52:19
CakePHPのおかげで
とてつもなく負荷の高いシステムがたくさん世に出そうだな
こりゃサーバー会社が儲かるな
sakuraインターネット株でも買うか!
220:nobodyさん
08/03/20 05:31:17
1.2のpaginate機能はつかえねーな
柔軟な制御ができん、
ページリンクに検索項目のパラメーター付加できない、というか
できるけど、面倒なことしないとダメくさい
ソート項目のパラメータは標準で付加できるようだが
221:209
08/03/20 10:56:59 mwRuCB98
>>218
私の技術力だと、二重ループ以外に実現する方法が思いつかないのですが、
他によい方法があったら教えてもらえますか?
ユーザ毎のコメントを表示する機能はパスするにしても、
同様にmasManyリレーションのテーブルを親子両方とも表示したい
機会はあると思うので。
負荷という意味では、masManyの定義でlimit=>10とする事で大量の子を
取得しないように、というのは心がけています。
222:nobodyさん
08/03/20 11:48:27
>>219
もっと負荷の高いsymfonyもありますぜw
223:nobodyさん
08/03/20 12:36:12
というか、プライマリーキーで
データを取得することが
負荷が高いと思っているのかな?
JOINの方がよっぽど負荷高いですぜ。
224:nobodyさん
08/03/20 12:40:34
DB周りじゃないだろ多分
225:nobodyさん
08/03/20 12:58:50
>>210
> お前らのcakeはこの時どういったクエリが発行されんの?
こういうクエリが発行されますがなにか?
select ... from users ... (id 1,3,5のユーザがヒットする)
select ... from comments where user_id in (1, 3, 5 ) ...
226:nobodyさん
08/03/20 13:35:31
CakePHPのどんどん負荷をかけて生産性を上げなさいというスタイルが
自分の性格に合わない気がしてきた
227:nobodyさん
08/03/20 13:39:58
まだ、例のアンチが常駐しているのかw
CakePHPはメモリも食わないし、負荷も高くない。
生産性は高い。
228:nobodyさん
08/03/20 13:40:43
アンケート
1.ページ送りの絞り込み条件パラメータをセッションで持たせている
2.ページ送りの絞り込み条件パラメータをURLの後ろに繋げてる(CakePHP1.1 paginate)
3.ページ送りの絞り込み条件パラメータをURLの後ろに繋げてる(CakePHP1.2 pagination)
229:nobodyさん
08/03/20 13:45:28
>>228
4. 基本は3と同じだが、場合によってpagination等をオーバーライドして独自の条件を追加している。
230:nobodyさん
08/03/20 13:45:45
>>227
矛盾してるな。それらは反比例の関係にあるからな
231:nobodyさん
08/03/20 13:45:54
>>226
たしかに、
●自分の用途に合わせて、全てのコードとHTMLを一から作成したシステム
●作り込み部分は最小限にして、大半のコードはcakePHP任せにしたシステム
を比べると、負荷は、一から作成したシステムの方が、余分なものがない分、
軽くできるかもね。
まあそこはトレードオフの部分だから、自分に向いてないと思ったら、
cakePHP以外のやり方を模索すればいいと思うよ。
232:nobodyさん
08/03/20 13:47:58
>>230
よくわからんが、いまどき生産性の悪いほうを
選びたいのか?
233:nobodyさん
08/03/20 13:49:21
負荷が高いシステムを作っているところは
どこでもフレームワークを使っている。
234:nobodyさん
08/03/20 13:50:32
>>229
View側で
$paginator->prev()
$paginator->next()
の第2引数に絞り込み条件を配列で入れてやら無いと
URLの後ろにパラメーターが付加されてなくない?
URLリンク(localhost)
みたいなかんじ
235:nobodyさん
08/03/20 13:55:14
>>234
いまソースが手元に無くて忘れたが、CakePHP1.2でかなり改善された。
そういえば、そういうパラメータを”コントローラ”側で追加していたきもする。
コントローラーのpagination変数だったっけ?
pagination[モデル名]だっけ?
まあわすれた。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4319日前に更新/213 KB
担当:undef