【PHP】フレームワーク CakePHP 4ホール目【v1.2】
at PHP
[前50を表示]
100:nobodyさん
08/07/12 04:04:06 GP2h4Bov
コントローラだと何でも出来ちゃうから
結局コントローラが厚くなってしまうんだよな
一通りコーディングが終わってからリファクタリングする形で
モデルを厚くしていかないと。
調べながらだと時間もったい気がする
101:nobodyさん
08/07/12 11:07:21
1.2のスライドにも、モデルが薄く、
コントローラが厚くなってしまうのが
問題って書いてあるな。
わざわざスライドにしてるってことは、
1.2で改善されるんやろか?
102:nobodyさん
08/07/12 13:48:03
問題なのは、フレームワークじゃなくて、
そういうコードを書くなってことだろう。
103:nobodyさん
08/07/12 19:30:01
>>100
> コントローラだと何でも出来ちゃうから
> 結局コントローラが厚くなってしまうんだよな
似たような話。
関数作らなくても何でも出来ちゃうから
結局コードが長くなってしまうんだよな。
結局だ、単なる経験の問題。
経験をつめば自然といいコードが書けるようになるよ。
104:nobodyさん
08/07/13 07:35:50 yyUJjXK2
どれだけ頑張っても
ModelとControllerの厚さを同じくらいにまでしか
もっていけねえw
強引にモデルにもっていけなら別だけどw
105:nobodyさん
08/07/13 17:55:25
初歩的な質問なんだけど、WEBのフォームから渡された値って、
基本的にモデルのvalidatesで全部チェックしていいんもんなんですか?
例えば、会員の新規登録でパスワード(password)と
パスワード確認(password2)を比較して同一かチェックするとか。
106:nobodyさん
08/07/13 18:01:54
規約に同意するかどうか、とかもモデルのバリデーションでやってます。
107:nobodyさん
08/07/14 02:01:47
「CakePHPガイドブック」ってもう廃刊なのですか?
去年末に発売したばっかりなのになぜ?
108:nobodyさん
08/07/14 06:42:09
内容が基本的に1.1だからでは?
フレームワーク本としては、かなりいい本。
109:nobodyさん
08/07/14 14:05:46
1.2RC2の話。
1.2からbehaviorsのattach/detachができるって、
あちこちに書いてあるけど、最近仕様が変わってるっぽいね。
よく書いてあるのが、コントローラで$this->Model->attach(ビヘイビア名)。
でも今は$this->Model->Behaviors->attach(ビヘイビア名)
間に、Behaviors(BehaviorCollection)が入ったようだ。
110:nobodyさん
08/07/14 15:48:07
チラシの裏
どうも、RC2にしてからユニットテストでメモリ不足と言われる。
メモリ制限をゆるくすればいいのだが腑に落ちない。
それで調べてみると、なんとアサーション一つにつき40KBぐらいも消費していた。
アサーションの数が3000個だと120MB。そりゃ足りないって言われるわなw
それでコードを追ってみてみると
/cake/tests/lib/cake_reporter.phpの関数
(特によく呼ばれるのはpaintPass)の中のob_start();が原因。
なんか知らんが、ob_start();を一回呼び出すとそれだけで40KBも消費する。
ob_end_flush()を呼び出すとメモリは解放されるっぽいけど、
どうもこのクラスの中では呼び出していない。(どこか他で呼び出しているの?)
そしてアサーション一つごとにob_startが連続して呼び出されることになる。
ob_startごときで40KBも消費するのも、変な感じだが
このob_startっているんだろうか?前のリビジョンのコードには存在しなかった。
とりあえず取ってみたが変化はわからない。
現在リファクタイリング中みたいだからそのうちどうにかされるのかもしれない。
111:105
08/07/14 17:10:17
>>106
そういうもんなんですね。
どもです。
112:nobodyさん
08/07/15 10:18:07
findNeighboursで1テーブルから前のID,後のIDを↓のように取得しています。
$where = array('hogekb =' => 1);
$this->set('nei_kekka', $this->Nani_table->findNeighbours($where,"Nani_table.id",$id));
ここに1テーブルjoinさせたいのですが、
以下のように設定したjoin句はfindNeighboursのどこにセットすればよいのでしょうか?
$options['joins'][]=
array(
'type' => 'INNER',
'alias' => 'Hoge_table',
'table' => 'hoge_table',
'conditions' => array('Hoge_table.id = Nani_table.id')
);
113:nobodyさん
08/07/15 14:41:34 kKo7V/Gs
DBに入れるほどではなく、CSVファイルとしてデータを持っていて
それをコントローラから参照したい場合、CSVファイルはどこに設置するのが
一番スマートなんでしょうか?
114:nobodyさん
08/07/15 14:50:47
俺もそれ知りたいな。
XMLファイルとか。
tmpフォルダとかかな?
115:nobodyさん
08/07/15 16:20:51
>>113
webroot の files フォルダ。これが一番いいと思う。
116:nobodyさん
08/07/15 17:29:56
>>115
外部から見られたくないファイルなのでは??
117:113
08/07/15 20:00:24
>>115
そうなんです、外部から見られたくはない。
いや見られても良いデータなんですけど、なんか変な感じなので。
>>114
tmpフォルダは考えたんですけど、役割的に違和感があるんですよね。
まぁ、結局DBにつっこんで今はやってみましたけど。
うーん。
118:nobodyさん
08/07/15 20:22:19
バージョンアップの際、appフォルダごと入れ替えるため、
appフォルダ以下にはデータは入れたくない。
cakeフォルダ以下には、データは入れるはずない。
appやcakeフォルダと同じ階層に、dataフォルダでも
作って、例えば画像ファイルとか入れられれば、
良さげに思うが。それは無理なん?
119:113
08/07/16 11:57:50
>>118
あ、その方法がありましたね。
確かにそれであれば全然いける上に、スマートかも。
ありがとです。今後、検討してみます。
120:nobodyさん
08/07/16 13:11:14 ahXuksxu
>>113
DBに入れるほどではないデータは配列にしてモデルに入れてるよ
121:nobodyさん
08/07/16 13:16:24 ahXuksxu
画像ファイルはvendorsでいいと思うんだが
122:nobodyさん
08/07/16 13:22:04 ahXuksxu
一番スマートなのはプロジェクトappと同じ階層にdataフォルダだな
CakePHPはデータ保存場所を考慮したフォルダ構成じゃないから
CakePHP内にデータを置くこと自体がスマートじゃ無いってことかな
123:nobodyさん
08/07/16 13:24:33 ahXuksxu
フレームワークの中にデータを保管しようという思考が
そもそも、おかしい気がしてきたよ
124:nobodyさん
08/07/16 13:27:51 ahXuksxu
フレームワーク外にcsvファイルを置くのが一番ベストだ!
125:nobodyさん
08/07/17 08:07:12 /Q3Ys2pH
フレームワークっていつまで使えるだろう
10年後、20年後にも、CakePHPはあるだろうか?
そもそもPHPは使われてるだろうか?
126:nobodyさん
08/07/17 08:11:21
>>125
ムリポ
127:nobodyさん
08/07/17 08:46:29
>>125
じゃあ、こう考えるんだ
10年前はどうだったかを。
それで今も残っていればあるってことになる。
って10年前はPHPそのものがなかったか。
128:nobodyさん
08/07/17 09:23:54 r8Tb5l59
その都度、旬な商売道具(今ならphpフレームワーク)使って儲けるしかない。
これやれば10年後安心てのはIT社会には無い
129:nobodyさん
08/07/17 09:26:42
UTF-8、PHP1.2で作ってるんだけど
フォルダ内のファイル名を読み込んだ時に
$file = readdir($dir)
だけだと日本語のファイル名が文字化けしてしまう。
部分的に関数通して文字化け回避する方法ってある?
130:129
08/07/17 09:58:29
128はCakePHP1.2の間違いです。
131:nobodyさん
08/07/17 16:12:51 hC9JNlTl
CakePHP1.2を使用しているのですが、
AppModel::queryを使って取得したデータを
paginatorに渡す方法ってありますか?
132:131
08/07/17 16:26:20 hC9JNlTl
任意のSQLでpaginateがしたいんです!
133:131
08/07/17 17:05:12 hC9JNlTl
無茶苦茶な方法ではありますが、
対象のModelでpaginateをオーバーライドして、
$coditionsの中にsqlを入れて取り合えず
期待する動作は得られるようになりました。
134:nobodyさん
08/07/17 18:56:26
>>127
PHPはあっただろw
135:nobodyさん
08/07/18 16:19:03
>>133
無茶じゃなくてまっとうな方法。
Modelにpaginateメソッドは存在しないからオーバーライドではない。
Controllerのpaginateメソッドが最終的にfindする際に
Modelのpaginateメソッドが存在すれば代わりにそっちを呼ぶようにに作ってある。
136:nobodyさん
08/07/18 19:07:42
modelはDBのテーブルと1対1が想定されているけど
DBテーブルに登録する際にバリデート内容が異なる画面が3つあった場合
DBテーブル1に対してモデルが3つ必要になるよね
Aテーブルがあったとしたら
A1モデル 使用テーブルA
A2モデル 使用テーブルA
A3モデル 使用テーブルA
それぞれのバリデート処理を実装することになるよね
137:nobodyさん
08/07/18 19:08:40
ログイン形式の携帯サイトを作ってるのですが、
CakePHPで「ログインされたかどうか」はどのように持つのが一般的なのでしょうか?
PCサイトではセッションを使うことが多かったんですが、キャリアによってセッションが使えない場合があると聞いたもので。
138:nobodyさん
08/07/18 19:11:29
DBテーブルに登録する際にバリデート内容が異なる画面が3つあった場合
ひとつのモデルで完結できるのかな?
A1モデル 使用テーブルA
画面1のバリデート処理
画面2のバリデート処理
画面3のバリデート処理
139:nobodyさん
08/07/18 23:07:31
普通にケースごとのvalidateメソッド書いてるけど。
140:nobodyさん
08/07/19 11:23:27
>>137
自分は
セッションとクッキーの連携プレーを使ってるよ。
キャリアって携帯でしょ?
携帯の場合はセッションキーをクッキーに埋め込むのよ。
141:nobodyさん
08/07/19 13:45:27
携帯ではクッキーが使えない機種があるだろw
142:nobodyさん
08/07/19 15:54:19
>>137
普通にURLにセションキー埋め込めよ。
>>140
( ゚д゚)ポカーン
143:nobodyさん
08/07/19 16:24:22 jBy/EgFS
モデルの数が凄い増えてきたら
モデルを使いたいコントローラメソッド内で
App::Import('Model', $model_name);
$model = new $model_name();
$model->findAll();
した方がいいね
どのコントローラメソッドでも共通利用することの多いモデルだけ
$usesに入れた方がよくね
じゃないと極端な話、一つのコントローラで利用するモデルが30個あった場合
$uses=arrray('A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12','A13','A14'・・・・・・・・・)
てなると$usesだけで管理するのしんどいよ。
144:nobodyさん
08/07/19 16:28:28
モデルが30個もあるシステムをCakeで作るとは・・・
どんなシステム?レスポンスどうなの?
145:nobodyさん
08/07/19 16:39:57 jBy/EgFS
>>144
A8のようなアフィリエイトサイトだよ。
レスポンスはアソシエーションを
その都度 bindModelする方法なら悪くはないよ
重くなるとしたらSQL関連だと思うから後はcacheに頼る
146:nobodyさん
08/07/19 16:45:53
一つのコントローラに詰め込み過ぎじゃないの?
147:nobodyさん
08/07/19 16:58:22 jBy/EgFS
>>146
30個あるモデルは使用するDBテーブルは同じでバリデートの内容が若干違うので
モデルを複数分けした。
なのでモデルの数だけコントローラを増やすというのもなあ・・・
ページ構成もおかしくなるし
148:nobodyさん
08/07/19 17:03:55 jBy/EgFS
コントローラの数はDBテーブルの数と比例するくらいの量で
モデルの数はバリデートのケース分、増えて行ってる
149:nobodyさん
08/07/19 17:08:42 jBy/EgFS
1つのDBに対して30通りのバリデートのケースがあれば
コントローラが1に対してもモデルが30になる
150:nobodyさん
08/07/19 17:23:07 jBy/EgFS
レスポンス的にはApp::Import('Model', $model_name);の方が負荷は軽減できるよね
管理的にも$usesで管理するよりも
コントローラメソッドの先頭でApp::Importを宣言する方が管理しやすい気がする
デメリットはコーディング量が少し増えるくらいかな
でも、どのコントローラメソッドでも使うモデルだけは$usesに入れるから
そんなにコーディング量は増えないかな
151:nobodyさん
08/07/19 17:41:39
>>148
そもそも、バリデートの数の分だけ
モデルを増やすのがおかしくね?
モデルのsave()で、バリデートするかしないかのフラグがあるだろ?
これって考え方を変えれば、バリデート1(データチェックする)、
バリデート2(データチェックを一切しない)という二つのバリデートと考えられる。
だからバリデート3(一部だけチェックする)ってのも、一つのモデルに入れてしまうのもありと思うが。
あとは、Model->save()の前に、Model->バリデートタイプ = '一部チェック';
なんてやっておいて、Modelのvalidateメソッドあたりで、バリデートタイプをみて
チェック項目を変更すれば良いんじゃね?
Modelのvar $validate、やったことないけど、
コードの中からでも変更できるんじゃね?
152:nobodyさん
08/07/19 17:45:08
バリデーションでモデル分けるのか・・・
なんか変な感じ。
153:nobodyさん
08/07/19 17:51:24
それと、App::Importよりも、Controller::loadModel()の方がよくね?
いや、使ったこと無いし情報も見つからなかったからよく知らんが。
ちなみに非推奨になったloadModel関数ではなく、
コントローラのメソッドのloadModel()だから。
154:nobodyさん
08/07/19 17:55:57 jBy/EgFS
Modelのvar $validateが
$validate1
$validate2
$validate3
という風に複数使えれば
バリデート分モデルを増やす必要は無いけど
バリデートタイプをみてチェック項目を変更ていうのは
変更項目が多いとコードが複雑に肥大化するのがなあ・・・
155:nobodyさん
08/07/19 18:04:40
>>154
やろうと思えば、できるとおもうけど?
コントローラで、$model->save()呼び出し前に
$model->validate_type = 'type1';
モデルのどこかで、$this->validate = $this->{'validate_' . $this->validate_type};
そうすりゃ、$validate_type の条件でチェックしてくれるよ。
具体的にどこのメソッドでやるのがふさわしいかは
ちょっとやってみないとわからないけど。
156:nobodyさん
08/07/19 18:05:53
訂正
そうすりゃ、$validate_type1 の条件でチェックしてくれるよ。
157:nobodyさん
08/07/19 18:19:45 jBy/EgFS
>>156
その方法で出来るのなら、ちょっと試してみます
158:nobodyさん
08/07/19 18:24:34 jBy/EgFS
>>153
App::Importよりも、Controller::loadModel()の方がよくね
理由は何でしょうか?
どう違うのですか?
159:nobodyさん
08/07/19 18:36:14
>>158
$usesの代わりと考えるのならば、
$usesで指定したのと同じ状態になるのが良い。
App::Importは単にクラスを読み込むだけ。
$this->Model にインスタンスを生成したりしない。
コードをざっと見ただけの意見だが、
コントローラの初期化処理で、$usersを見て値が入っていれば、
Controller::loadModelを呼び出してモデルを生成している。
loadModelはクラス生成以外にもなんかやってる。
だからloadModelを使ったほうがトラブルが少なくなりそうだと思った。
でも使ったことは無い。loadModelは外部から使うべきものじゃないかのうせいもある。
(普通は使うべきじゃないのなら _loadModelになっているはずだとは思うが)
160:nobodyさん
08/07/19 18:47:19
>>140
・・・ごめん。セッションキー埋め込みだった。
161:nobodyさん
08/07/19 19:07:40 jBy/EgFS
>>159
なるほど、よくわりました。
_loadModelてのは何ですか?
162:nobodyさん
08/07/19 20:12:00
メソッド名の先頭に _ をつけると、外部からの使用を推奨していないということ
loadModel()に、_が付いていない以上、普通に呼び出して良い(ことが窺い知れる)
URLリンク(api.cakephp.org)
163:162
08/07/19 20:14:27
といっても、これ、知らなかった。loadModel()
特定のactionでしか使わないModelなんかは、これで動的に呼んだ方が良さそうだね。
修正しよっと
164:nobodyさん
08/07/19 23:06:40 jBy/EgFS
バリデーションをビヘイビアを利用してyaml化にして
コントローラ内でattach関数を使って読む込むyamlファイルを動的に選択させることで
モデルを増やさずにバリデーションyamlファイルだけ増加させることで解決できた
165:nobodyさん
08/07/19 23:10:53 jBy/EgFS
これでバリデーションが必要な画面数に比例してyamlファイルが増加していく
166:nobodyさん
08/07/20 07:59:18
1.2からずいぶんと実践的になったよね。
フレームワークを使っている人が作っている感がでてる。
167:nobodyさん
08/07/23 16:23:08
ローカルで開発してるんだけど、1.2RC2は1.1よりも動作が遅いな。
168:nobodyさん
08/07/23 20:47:49
1.2になってsymfonyよりも遅くなったみたいだね。
しかもsymfonyの遅い原因だったPropelも今度のバージョンで速くなったし
なんだかなー。
169:nobodyさん
08/07/23 21:18:09
>>167 168
まじっすか。痛いっすね。
ただでさえ重いのに。。。
170:nobodyさん
08/07/23 22:31:35 bVhJ1Ly7
どんだけ遅いマシン使ってるんだよwwwwwwww
171:nobodyさん
08/07/23 22:32:47 pE/1LCdw
かといって、今後のメンテを考えると、1.1系で行くわけにもいくまい。
チューンナップが進むのを期待するだな。
172:nobodyさん
08/07/23 22:39:51
いや、マジで遅いよ。
モッサリという感じ。
1.1はサクサクだったのに残念。
173:nobodyさん
08/07/24 01:13:17 v8PYU5tT
キャッシュ利かせればモッサリとかねーと思うんだが
デバッグモード解除してもモッサリするようなら
SQLがらみ、bindmodelで上手にやれば問題なし
174:nobodyさん
08/07/24 02:22:41
そういえばデバッグモードが重いって話じゃなくて?
175:nobodyさん
08/07/24 13:44:45
この流れは、そろそろAkelos考えてみっかになるんだろうな・・・
176:nobodyさん
08/07/24 13:56:02 YLl3rq+t
>>175
スレリンク(php板:86番)
177:nobodyさん
08/07/24 18:43:29
デバッグモードが遅いってだけの話じゃね?
1.2のbetaの時にくらべ、デバッグ情報の量が
かなり増えているから。
178:nobodyさん
08/07/24 19:04:07
いくらCakeに不満があっても、Cakeしか使えない・・・
Cakeが初めてのフレームワークでも、すんなり移れるフレームワークってないですか??
symfonyとかサッパリ;;
179:nobodyさん
08/07/24 19:13:11
つ ちいたん
180:nobodyさん
08/07/24 19:43:19
>>137-142らへんの話に便乗するけど、
URLにセッションIDを埋める場合って
session.php内のuse_trans_sidを1にしないと使えないの?
PCサイトとプロジェクトが共通だから、なるべく共通的なところは
いじらずにやりたいと思うのだけど。
181:178
08/07/24 20:16:32
>>179
さすがにライトすぎるというか;
使ってもみないで言うのもなんですが・・・
CIとかも流行ってきてますね。ちょっと気になる。。
182:nobodyさん
08/07/24 21:26:03
>>181
そんなスレ違いなあなたにはここをオススメっ
【PHP】フレームワークについて語るスレ10【総合】
スレリンク(php板)
183:nobodyさん
08/07/24 23:50:55
1.2は何回かリロードすると謎のwaitが発生する
184:nobodyさん
08/07/25 18:19:46
単にキャッシュが有効な期間は速くて、有効期限が切れたら
読み直し(=WAIT)が発生しているだけだろ?
謎でもなんでもない。
185:nobodyさん
08/07/26 16:44:09
back from vacation time to start working towards cakephp RC3
オイオイ、いつまでRCだすんだよ;
186:nobodyさん
08/07/27 10:13:15
RC3 => stable となることを願うばかりだな
187:nobodyさん
08/07/27 21:27:08
う〜ん。1.2のcakeコマンドが分からん。
$ ./cake bake all
で、全部のテーブルの基本的な画面を一気に作ってくれんの?
順番に数字を指定するのが面倒・・・
MCVを対話式で一つ一つ作るよりはマシになってるけど。
テーブルの数が多いと、大変。しかも、いちいちtestのを
作るか?とか聞かないで欲しい。
188:nobodyさん
08/07/29 02:42:26 ab6DF8xC
CakePHPの案件たくさんありますので
長くお付き合いできる方募集します。
URLリンク(hp.submit.ne.jp)
189:nobodyさん
08/07/29 09:13:12
>>188
>最も重要視するポイント クオリティ
VIPクオリティでもいいですか?
190:nobodyさん
08/07/29 19:27:35
CakePHPのサイトに繋がらないのは俺だけ?
www.cakephp.orgもbook.cakephp.orgもダメだ…orz
191:nobodyさん
08/07/29 20:10:31 2mZftY9A
きみだけだ
192:nobodyさん
08/07/29 20:24:56
繋がったyo
193:nobodyさん
08/07/30 19:42:29 g+nhVb89
この記事おもしろくね?
Database design and CakePHP
URLリンク(bakery.cakephp.org)
194:nobodyさん
08/07/30 21:17:11
どこの部分が?
195:nobodyさん
08/07/30 23:23:13
「投稿(Post/posts)」と「タグ(Tag/tags)」がHABTM(posts_tags)で関連づけられている構造で
「あるタグが含まれる投稿の一覧」を得るにはどうすればいいですか?
投稿だけじゃなくて付帯するタグのデータも引っ張ってきて欲しいんですが
・投稿のMemoタグをクリック
→Memoタグが付けられたPostの全情報を一覧表示
Title: メモその1 / Body: けーき始めました / Date:2008-07-28
Tag: CakePHP Memo PHP
Title: メモその2 / Body: けーきのためにPHP勉強中 / Date:2008-07-29
Tag: Memo Ruby
Title: らしくないメモ / Body: 内容は何でもイイんだけど / Date:2008-07-30
Tag: C++ Dlang Memo
↑こんな風に表示できるようにデータが欲しい
今はqueryを二回に分けて直発行でやってるんですが、もうちょいマシな方法はないものかと
196:nobodyさん
08/07/31 13:23:35
vendors/commons.php内に共通関数を書いているんですが、
commons.php内の関数から同じcommons.php内の関数を呼ぶにはどのように記述すればいいのでしょうか?
$this->関数名だと
Using $this when not in object context とエラーが出てしまうので・・・。
197:nobodyさん
08/07/31 15:17:33
>>196
クラスにしてないなら$this->はいらないでしょ。普通になんも付けずに呼べばいいだけだけど。
198:196
08/07/31 15:54:35
>>197レスありがごとうございます。
自己解決しました。
Commons::関数名で呼び出すことができました。
(なにもつけなかった場合はundefined functionが出ました)
199:nobodyさん
08/08/01 00:59:56 CpiiU14k
ん? >>196 >>198 に追加で質問なんだけど、Commonsクラスをcommons.phpに記述している、
って認識でOK?
200:196
08/08/01 11:40:22
>>199
OKです。
Commonsクラスの中に書いた2つの関数を、片方から片方を呼ぶ
という感じです。
201:nobodyさん
08/08/01 16:36:12
テーブル名やカラム名に日本語使うとうまく動かんとこがあるね
202:nobodyさん
08/08/01 17:12:36
そもそも、そんな発想がなかった
203:nobodyさん
08/08/02 11:01:20
テーブル名、カラム名に日本語使うと・・・
foreach ($部署['社員'] as $社員) {
echo $社員['氏名'];
echo $社員['性別']['性別'];
...
}
こんな感じになるの??
204:nobodyさん
08/08/02 11:52:56
社員s_controller.php
社員.php
URLリンク(example.com)社員/view/1
とか?
205:nobodyさん
08/08/02 12:07:43 aQY+T7Eo
↑どこまでがマジ話なんだ
206:nobodyさん
08/08/02 14:11:43
普通に笑ってしまった!
207:nobodyさん
08/08/02 22:07:43
>>203,204
そういうのはuseTable使ってアルファベットだけにしてる。
作ってたら途中まで問題なかったんだけど、
SQLを""でクォートするところでちゃんとできずにSQLエラー。
正規表現がうまくいってないとこまで分かった。
208:nobodyさん
08/08/03 03:51:55
2バイト圏じゃない人が作ってるんだから、かなり修正が必要そうだな
209:nobodyさん
08/08/03 10:57:48
1バイト圏に移行することにより解決しました
210:nobodyさん
08/08/04 11:03:43
1.2に対応した書籍って出てる?
211:nobodyさん
08/08/04 11:23:09
>>210
時間的にムリw
212:nobodyさん
08/08/04 11:25:58
CakePHP ポケットリファレンスは
1.1/1.2に対応してるようなことが書いてあったけど、
どこまで対応してるのかね?
213:nobodyさん
08/08/04 13:04:46
RCで結構変わったっぽいからねぇ
214:nobodyさん
08/08/04 15:39:24
>>210-213
現1.1ユーザーにとっては、1.2対応の基本は押さえられる
RC前なので、betaからRCになって変わったところとかは未対応。その辺把握していないと辛いかも。
ex Modelのconditions
1.2betaすら使ったことがない人は、買って損はない、と思う。
215:nobodyさん
08/08/04 15:42:55
1.2のstableが出て、改訂版が出れば買うかなぁ
216:nobodyさん
08/08/05 12:11:46
そういや今月末にまたcake本でるよね。
CakePHP徹底入門だったか。
217:nobodyさん
08/08/05 13:01:29
もう入門本イラネ
218:nobodyさん
08/08/05 14:55:44
>>216
まじか!
とりあえず買っておこうかな。
cakephp 全部持ってるけど一番役に立つのはリファレンスかな。
219:nobodyさん
08/08/05 16:49:14
CakePHP徹底入門 (大型本)
Amazonより
> CakePHPの最新バージョンである1.2をメインとした初の解説書
ほんとうかよ?
beta -> RC でずいぶんと変わったぞ?
時期的にあやしいんだよなぁ。
220:nobodyさん
08/08/05 21:22:57
もうすぐRC3でるしねぇ・・・
Cakeって本と相性悪いねぇ。
221:nobodyさん
08/08/06 00:46:37
開発をコンパクトにやってるのか、方針転換が早いからね
今Cake本出すならstableまで待って原稿上げる英断をして欲しい
222:nobodyさん
08/08/06 02:09:25
これから着手する案件、1.1でやる。
仕事なら普通だよな?
223:nobodyさん
08/08/06 04:49:56 c9uoLYnS
仕事なら普通に1.2だろ
php5が出てるのにphp3でやるといってるのと同じだぞ
224:nobodyさん
08/08/06 04:52:09 c9uoLYnS
もうひとつ付け足すと1.2は安定してるし
1.1と1.2の機能面での差は、かなりでかい
225:nobodyさん
08/08/06 10:41:07
>>220
もう一年近く前になるかな?
CakePHPの本が何一つ出ていなかった頃。
海外の書籍でCakePHPがでると聞いて予約した。
いまだに出てないw 当然キャンセルしたw
226:nobodyさん
08/08/06 10:46:43
>>224
機能面もそうだし、1.1と1.2じゃ仕様の変更が多いよな。
一番の基本である、findXXX系まで変わってるし。
1.1と1.2じゃなくて、1.1と2.0ぐらいのバージョンの差があるよ。
たしかに、RCは正式版じゃなくリスクもあるけど、流石にもう大丈夫だと思うな。
ただ作っているうちにstableでて入れ替えることになるだろうから、
UnitTestはちゃんとしとけ。でないと再テストが苦痛になる。
仕事だから当然だ。
227:nobodyさん
08/08/06 11:17:06
1.1は死んだって書いてあるね。1.1はもう開発しないし
これから新規開発するには1.2を選べってさ。
URLリンク(cakebaker.42dh.com)
228:nobodyさん
08/08/06 12:25:03
googleボットがデータを消してゆく
bakeで簡単に焼いたものをWeb上においておくと、グーグルボットが
deleteメソッドを踏んで、データを消してゆく、という話です。
URLリンク(cakephp.jp)
ワロタw
俺は以前CakePHPとは関係ない話で似たような話をどこかでみたので
それですぐにこうなることに気づいていたが恐怖だろうなぁw
というかPostで制限意味ねーw Postに対応したbotがあったらどうすんだよ。
お問い合わせフォームにまでスパム投稿してくる時代に。
229:nobodyさん
08/08/06 13:16:14
>>228
クソワロタwww
230:nobodyさん
08/08/06 13:51:20
>>228
おお。bakeで作って認証かけてないやつあるわ(笑)
googleに発見されたらアウトだ。
さて。手っ取り早く対応するには、どうしようかな。。
231:nobodyさん
08/08/06 13:52:33
>>230
つ「BASIC認証」
232:nobodyさん
08/08/06 13:59:40
>>231
認証かけられないんだよね。諸事情で。
暫定的に、robots.txtで逃げたけど、どうしよう。。
233:nobodyさん
08/08/06 14:38:16
そりゃあ、単純にdeleteメソッドを置いておけば踏まれるだろ
234:nobodyさん
08/08/06 17:06:11
>>228の「似たような話」について
おっ。見つけられた。gigazineだったか。
Googleにサイトを全消去されたかわいそうなサイト
URLリンク(gigazine.net)
正確には、Googleがページのクロールに使用する「Googlebot」によって
CMS(コンテンツマネジメントシステム)のデータが全部消えてしまったというお話。
このCMSは従業員が各自で情報を入力していくという、まぁ一般的な方式で、
最終的なテストも終えて、インターネット経由でアクセスできるようになったわけです。
が、わずか2,3日後に悲劇発生。全ページが消えてしまい、
「内容を入力してね♪」
というような初期ページのみになってしまったのです
235:nobodyさん
08/08/06 17:12:05
今時誰でもデータ全消去できるってどんなサービスなの?
236:nobodyさん
08/08/06 17:14:45
>>232
世の中には、robots.txtを守らないボットがあるから
気をつけよう。
スパムメール送信の為のアドレスを集めるボットとか。
237:nobodyさん
08/08/06 17:34:27
>>235
こんな感じじゃないかなぁと思う。
1.クッキー対応していなくてもログインできるようにしたために
URLにセッションIDが追加されてしまっていた。
2.TinyMCEのようなブラウザで動くHTMLエディタを実装していた。
これにより、コピペをするとセッションIDが付加されたAタグまでコピペできる。
3.これが公開ページに置かれ、Googleが発見した。
つまりセッションハイジャック状態
4.セッションIDを含んだアドレスをgooglebotが発見、次々に
セッションIDを含んだリンクをたどる。
5.その中にdeleteリンクがあってgooglebotがそれをクリック。
ログインの仕組みを作るにはCookieを使うのが常識だけど、
携帯対応とかでCookieを使わずにアクセスできるようにしちゃうと大変だね。
URLにセッションIDが含まれているときは、携帯から
アクセスできないようにするという考えもあるけど、
そこに携帯サイトもクロールしてほしいとか言い出すと・・・
ワンタイムトークンでも使うのがいいのかな。
238:nobodyさん
08/08/06 19:08:29
>>237
詳細にTHX
239:nobodyさん
08/08/09 19:03:49 z9jw78px
bakeで作ること自体、素人のやることだと思ってるから
どうでもいいっちゃー、どうでもいい
240:nobodyさん
08/08/09 19:36:35
bake使ったことないからよく分からんwww
241:nobodyさん
08/08/11 06:36:20
cakePHP 1.2 RC2ってSQL Server 2000から正常にデータ取得できる?
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
が実行された段階で、
「SQL Error: データベース コンテキストは targetdb' に変更されました。」
ってWarningが出て
「Error: Database table targetviews for model Targetview was not found.」
って怒られるんだが、targetdbにはちゃんとtargetviewsってビューを作成済み。
クエリアナライザからtargetdb上で
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
してもちゃんと抽出できる。
理由がよく分からん…orz
DBがMySQLなら上手く行くんだが…
242:nobodyさん
08/08/12 00:53:04
>>241
ADODBを使ってるの?
SQL Server 2000自体には対応してないでしょ
243:241
08/08/12 06:18:34
>>242
d
ADODBじゃなくてmssqlで繋いでる。
無理にmssql使わなきゃ良いんだろうけど、
既存アプリをcakePHPに移行するとどうなるか
テストしてるから上手く行かないならDB変えないとなぁ…
244:nobodyさん
08/08/15 08:44:04
dreaming of a cakephp RC3
楽しみなような、おそろしいような・・・
はやくstableになってくれ〜
245:nobodyさん
08/08/22 00:34:13 MNsA+EAa
すごくバカな質問するんだけど、怒らないで聞いて欲しい。
CakePHPを勉強しているんだけど、命名規則にちょっと疑問が。
なんで、複数形じゃなきゃダメなの?複数形にしなかったらどうなるの?
246:nobodyさん
08/08/22 01:11:39
しなくても出来るはず。
した方が楽に自動設定できるだけ。
247:nobodyさん
08/08/22 02:41:14
単数と複数の区別は重要。
それをsつけるだけであらわせるんだから便利じゃん。
しなかったら気持ち悪いと思うんだけどな。
248:nobodyさん
08/08/22 06:39:31
以前のバージョンとき
indexs じゃだめだったときあったな。
indexies ってやらんと。
複数形って規則性がバラバラだから難しい。
グレーの色も gray でも glay でもどっちでもいいんでしょ?
249:nobodyさん
08/08/22 09:25:24
複数形一発検索とかのサービスはないのかな?
英語の勉強しなくちゃな…
250:nobodyさん
08/08/22 12:33:06
内部に、複数形⇔単数形の変換関数か何か入ってるんじゃないの?
RoRは入ってるとか聞いたけど
251:nobodyさん
08/08/22 14:45:43
coreに入ってるinflector使えばでできるんじゃないの?
252:nobodyさん
08/08/22 14:47:56
これね。
URLリンク(book.cakephp.org)
253:nobodyさん
08/08/22 15:00:49
>>252
いい事聞いた
254:nobodyさん
08/08/22 16:24:43
index => indices
255:nobodyさん
08/08/22 21:54:49
俺は英語よりも日本語のほうが表現力の豊かさの点で好きなんだが
複数形という概念は、すごいと思ったな。
大昔に作られた英語が、ここまでプログラミングにマッチするとは。
もし複数形がなければ、変数名に悩むことが多かっただろう。
でも、日本語は、単語と単語をくっつけて合成語を簡単に作れるから
やっぱり日本語が便利だな。「前月商品金額合計」みたいな。
英語だったら長い。
あと、音を表すだけのひらがな・カタカナ。
外来語を簡単に日本語に変換できてしまうカタカナ。
同じ言葉でも、漢字で書けば男っぽく、ひらがなで書けば女っぽく、カタカナで書けば外国っぽくなる面白さ。
あぁ。日本語ってすばらしい。
256:nobodyさん
08/08/23 00:10:11
和んだw
257:nobodyさん
08/08/23 02:58:57
英語的に正しいかとか気にしてないなぁ。
LastMonthItemPriceSummary
とかさぁ。
258:nobodyさん
08/08/23 09:13:23
ワロタw
259:nobodyさん
08/08/23 11:36:45
SexAndTheCityHelper
260:249
08/08/23 15:26:42
>>252
横着な要求を聞き入れて九打差り、官舎孟子安芸鱒
261:nobodyさん
08/08/23 17:49:04
>>250
入ってない単語はいちいち登録してやらないといけないんだよな。
もしくは機能を無効にするか。
結局余計な仕事を増やす設計になってる滑稽さ
262:nobodyさん
08/08/23 21:42:23
1行定義する労力と、単複区別不能なコードとどっちがいいか?
263:nobodyさん
08/08/24 13:54:17 OI90xc3U
複数形とかなんでそんな仕様にしたんだろう?
264:sage
08/08/24 17:24:57 KEdveE+J
すみません、アホな質問かもしれないんですが。
今まで1.1の環境でPEAR::Pagerを使うためにvendor()で読み込んでたんですが、
1.2に入れ替えたためDeprecatedだというWarningが出ます。で、1.2からは
URLリンク(book.cakephp.org)
App::importを使うようにと書かれているんですが、このApp::importって
どこに書けばいいんでしょう?posts_controller.phpのクラス?色んな
ところに書いてみたんですが、全部だめー!て怒られました。
Cakeの構造自体理解してなくてすみません。どこに書けばいいんでしょうか?
265:264
08/08/24 17:26:21
すみません、sage間違った・・・
266:nobodyさん
08/08/24 22:43:46
>>264
コントローラーでもどこでもいいと思うけど。
だめー!って書いてあるエラーの内容見てみれば?
267:264
08/08/25 00:01:57
>>266
なんか色々いじってる間にHTMLヘルパーのエラーが出てしまって
再現できません><すみません!また書きます!
268:264
08/08/25 00:07:54
出ました。えーとチュートリアルで言うとposts_controller.phpの中の
class PostsController extends AppController{
App:import('Component', 'Pager');
...
}
と書いてみたところ
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
と怒られます。何か根本的に勘違いしているような気がするのですが、
どこがそうなのか・・・
269:nobodyさん
08/08/25 00:16:56
vendor(パス) → App::import(適当な名前, arary('file'=>パス.php);
こんな感じ
270:264
08/08/25 00:33:04
>>269
App::import('Vendor', array('file' => 'Pager.php');
としてみましたが、エラーメッセージ変わらずです。
vendorsディレクトリの中はPager(ディレクトリ)、Pager.php、
include_path_vendors.php(PEARのディレクトリへパスを通すため)
が入っています。うーむ。
271:nobodyさん
08/08/25 02:22:25
App::import('Vendor', 適当な名前、array('file' => 'Pager.php');
だったか?
272:nobodyさん
08/08/25 03:25:46
>>264
depricatedなら1.2のページャとimportしてるライブラリの関数名が被ってるんじゃない?
というかパースエラーさらしてる時点で初心者とみた。
273:nobodyさん
08/08/25 11:53:43
class PostsController extends AppController{
App:import('Component', 'Pager');
...
}
じゃあ動かないよ
class PostsController extends AppController{
function goodluck()
{
App:import('Component', 'Pager');
}
...
}
じゃない?
274:nobodyさん
08/08/25 17:33:57
Zendと違ってCakeは直接Cakeの中に色々入れていくタイプなのかな?
Zendの場合は必要なディレクトリ構成さえあれば外部から呼んでくれるが
275:nobodyさん
08/08/25 17:58:11
そうそう、全部自分で完結させるタイプ、というか。
そのままディレクトリをサーバーに置けば使えるっていう。
私は結構気に入ってたりします。
276:nobodyさん
08/08/25 22:26:29
FW内で自己完結できるのはいいよな
環境移すのも楽だし
277:nobodyさん
08/08/26 17:35:31
>>276
VCEEとかだと.NETのフレームワークは外部から読み込むよな
そんな感じでもう慣れちゃったから内部完結みたいなのがまだ慣れない
278:nobodyさん
08/08/27 11:21:42 wzctFyRR
Webに公開されないプログラムでCakePHPを使いたいんですが、
CakePHPはhtaccessやルーティングでプログラムを結び付けてるんで、やっぱり使いにくいんでしょうか?
CakePHPのデータベース周りが便利すぎて、どうしても使いたくなっちゃうんですよね。。
279:nobodyさん
08/08/27 12:47:13 tVkJ8wOQ
社内向けのアプリ?
別にCakeでもいいんじゃね?
280:nobodyさん
08/08/27 13:57:59
>>278
多分、Apache(Webサーバ)を通さず実行する
スクリプトとしてphp+cakeでやりたいってことじゃね?
281:278
08/08/27 14:30:57 wzctFyRR
>>280
その通りです。
282:nobodyさん
08/08/27 15:04:50
ウェブサーバーが無いと
スクリプト動くわけ無いやんw
CakePHP以前にPHPが動かない。
PHPだけじゃなく、CGI、Perl、Ruby、何も動かんw
283:nobodyさん
08/08/27 16:26:42
ひどいつりだ
284:nobodyさん
08/08/27 16:48:18 gXMXTzpH
localhostだけで動かすか、IP規制すればいいだけのことじゃん
285:nobodyさん
08/08/27 16:56:08
>>294
それでもWebサーバは必要。
なんか上げ足の取り合いになってる感じだが
286:nobodyさん
08/08/27 18:30:20
>>294
その発想は無かった!
287:nobodyさん
08/08/27 19:24:58
>>294
天才現る
288:nobodyさん
08/08/27 20:17:20
CLIのphpで動くようにコード書けば良いだけだろ。JK
289:nobodyさん
08/08/28 12:13:39
今、cakephpでブログを作って運営してるんだけどタグ機能をつけたいと思うのね。
でも、一度完成したプログラムをいじるのがなんかすごい抵抗があるんだけど。
プロの仕事だと完成後にあれつけろこれつけろってのもよくあること?
290:nobodyさん
08/08/28 12:42:08
そのCakeで作ったブログとやらを見てみたい。ぜひ・・・・
291:nobodyさん
08/08/28 13:54:59
>>289
「(タダで)こういう機能を追加して欲しい」
ってのはしょっちゅうだwww
292:nobodyさん
08/08/28 14:23:15
ありがとうございます。やっぱそうなんですか。
作ったの改造するより、最初っから全部作った方が楽しいですよね。
家のリフォーム業者も同じことを思うんでしょうかね。
293:nobodyさん
08/08/28 14:28:29
プロ・趣味問わず今のWebアプリはそういう増改築は不可避でしょ?
タグ付きで作り直してもまた別の機能付けたくなったらまた作り直し?
今の状態でとりあえずタグ機能付けて時間あったらソース修繕(何て言うんだっけ)じゃないの
294:nobodyさん
08/08/28 15:17:32
>>293
たしかにそうですね。一個一個作り直してたらキリないですね。
とりあえずつけることを考えてやってみます。
勉強になります。ありがとうございます。
295:nobodyさん
08/08/28 18:59:25
あとから修正すると、バグ混入で今まで動いていたところが動かなくなるよ。
そうならないようにユニットテストを書いておくわけだ。
書いておいたテストを実行すればテストできるわけだから、
修正するたびに、毎回全部をテストをするわけだ。
296:nobodyさん
08/08/28 19:04:09
CakePHP徹底入門って初心者向きの内容?
やっぱり気になる・・・・
297:nobodyさん
08/08/29 09:41:22
>>295
そうですね。たしかにバグりますよね。
あれ・・・ここいじってないんだけど、どうして動かないの!?って。
だからあまり触りたくなかったんですが。
ユニットテストのメリットってそこにあるわけですね。
298:nobodyさん
08/08/29 12:25:04
>>289
ない仕事のほうがめずらしい
299:nobodyさん
08/08/31 17:43:38
>>296
そろそろレビューが欲しいところ。
300:nobodyさん
08/09/01 01:20:41
>>299
CakePHPと名の付く本は全部買ってる拙者、ぱらぱらっと読んだ感じではイマイチかと。
他の本との差別化をしようとしてか、bakeに多くのページを割いてる。
インストール + bake で半分とか。
拙者のお薦めは PHPフレームワーク完全マスター + CakePHPポケットリファレンス。
前者で入門して、あとは後者をリファレンスに。(後者も一度全部読むと良いと思う。)
301:nobodyさん
08/09/01 01:31:03
>>300
レビューサンクス。
やっぱりbakeメインかぁ・・・
bake使わないしなぁ・・・
入門はもういいから、
もっとハック的なのをメインにしたのが欲しいところ・・・
bakery読めないし・・・・;;
302:nobodyさん
08/09/01 02:02:49
CakePHPポケットリファレンス は立ち読みしたが悪くない
1.2のstableでて、この本が対応したら買いたい
あと買った中では CakePHPガイドブック は初中級者向きとして悪くなかった。
303:nobodyさん
08/09/02 09:32:07
Cake初心者の俺。
1ヶ月前にCakePHPポケットリファレンスを買ったが、
大活躍している。
ただ、それだけではCakeについて全く理解できないので、
友達からCakePHPガイドブックを借りた。
自分としては、『リファレンス+ガイドブック』の組み合わせで
全てがまかなわれると思う。
他には『Fast CakePHP』を読んだけど、あれは簡単すぎた…。
304:nobodyさん
08/09/02 11:01:34
bakeは釣り
305:nobodyさん
08/09/02 15:54:42 DwwkROZ8
マックのインターフェイスービルダーみたいなのでインターフェイス作ってcakephp出来たらいいのに。
306:nobodyさん
08/09/02 20:40:37
HTMLエディタ使え
307:nobodyさん
08/09/03 06:45:31
RC3まだかな〜
というかStableまだかな〜・・・
作業大変そうだから無理はいわないが・・・
308:nobodyさん
08/09/03 17:24:21
ここ1年でCakePHP用の俺俺関数がたくさん出来た
殺人的な工数もなんとかこなせてる。俺のスキルがUPしたんじゃなくて
悪魔でCakePHP用の俺俺関数のおかげ
2、3年はこれで喰っていけそうだ。
短納期でいけるようになったのは俺だけじゃないと思うから
もしかするとWEBのシステム単価は低くなると思うよ
309:nobodyさん
08/09/03 20:22:55
以上悪魔さんのレポートでした
310:nobodyさん
08/09/03 22:01:16
>>309のおかげで>>308読み直したら結構ワラタw
311:nobodyさん
08/09/04 00:39:08
2ちゃんのようなスレッド掲示板ならCakePHPで1週間で作れるやつは多くなってる気がする
だから2ちゃんのようなスレッド掲示板の見積もりをCakePHP使ってる個人に出すと
15万円〜20万円くらいが相場になってきてるよ
312:nobodyさん
08/09/04 00:43:35
CakePHPで儲けるなら
安い単価でどれだけ沢山のサイトを作るかだよな。
結果としてWEB制作費用の相場は下がるけど
業界がそういう流れになってるから仕方ないよね
313:nobodyさん
08/09/04 21:17:37
もしくはめっちゃくちゃ安く作って、保守を高くする。
これが一番儲かりそう。
ホームページ無料で作ってサーバー代をすげー値段とるとこも多いからね。
314:nobodyさん
08/09/05 09:51:29
コーディングやシステム設計してるとき
なんで俺て頭いいのと思うことが最近多い。
過去の経験も大事だけど、経験にはない
ひらめきみたいなものも大事だと思う
経験+ひらめきがプラスアルファされることで良いものが早く出きる
315:nobodyさん
08/09/06 01:38:01
近いうちに間違いなく
何でこんな頭悪いことやってたんだ俺
設計からやり直してー
ってなる。
ならなかったら頭が停滞しているということ。
316:nobodyさん
08/09/06 15:10:34
314と315の繰り返しだよね。
プログラムって。
317:nobodyさん
08/09/06 22:09:53
日によってプログラミングが冴えるときと、そうじゃないときがある
冴えるときは別人のように俺は天才と思うときがあるけど
50%の割合でしか出せることが出来ない
318:nobodyさん
08/09/06 22:11:37
納期jに追われてるときに集中力でるから
天才的なコーディングになることが多い
319:nobodyさん
08/09/06 22:14:47
自信過剰な性格じゃないけど、プログラムに限っては
天才と思うことが多々ある。
320:nobodyさん
08/09/07 04:13:27
>>319
いやそれを自信過剰な性格というだろ。
321:nobodyさん
08/09/07 15:29:05
朝が一番頭が冴えると思う。
朝作れなかったら、その日はもうだめだ。
322:nobodyさん
08/09/08 07:47:54
今日は調子悪いので2ch見て過ごす。
まあ、週に3,4日はそんな感じ。
323:nobodyさん
08/09/09 15:11:13 1fHefJEI
cakephp使う以前はsmartyでfetchしたhtml内容をfileにして保存していたのですが
cakephpの表示結果をhtml形式で別に保存する事は可能でしょうか。
324:nobodyさん
08/09/10 23:58:34
テンプレートでob_flashとかcache系の処理でなんと出来そうじゃない?
と適当に思い付いた事を言ってみる
325:nobodyさん
08/09/11 00:25:09 ldL7ucwZ
Smarty使えばいいがな。
326:nobodyさん
08/09/11 00:42:10
>>324
俺もキャッシュでいいんじゃないの・・・と思うので、同意。
327:nobodyさん
08/09/16 12:22:26 AZ36dHRD
バリデーションで任意入力のチェックをする場合に悩んでいます。
たとえば郵便番号は必須でないけど999-9999とかでチェックしたい場合
ruleで正規表現を使うと入力していない場合でもエラーが出てしまいます。
解決策はありますか?
328:nobodyさん
08/09/16 13:48:28
>>327
つallowEmpty
329:nobodyさん
08/09/16 13:57:26 AZ36dHRD
>>328
ありがとうございます!!ためしてみます。
330:nobodyさん
08/09/16 14:11:56 AZ36dHRD
>>328
'allowEmpty' => trueで出来ました。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5319日前に更新/182 KB
担当:undef