【PHP】フレームワーク CakePHP 4ホール目【v1.2】 at PHP
[2ch|▼Menu]
1:nobodyさん
08/06/20 01:24:40
URLリンク(www.cakephp.org)

10分で作るCakePHPアプリ for Windows
URLリンク(p4life.jp)

マニュアル日本語化
URLリンク(www.cakephp.jp)

Cookbook :: 1.2 Collection :: マニュアル
URLリンク(book.cakephp.org)

日本語フォーラム
URLリンク(cakephp.jp)

あとこのへんとか(初心者向けTIPS)
URLリンク(www.avatarfinancial.com)

CakePHP入門リンク集
URLリンク(pub.studio15.jp)

【PHP】フレームワーク CakePHP 3ホール目【本命】
スレリンク(php板)
【PHP】フレームワーク CakePHP 2ホール目
スレリンク(php板)
【PHP】フレームワーク CakePHP
スレリンク(php板)

2:nobodyさん
08/06/20 06:26:03
2? そして乙

3:nobodyさん
08/06/20 09:26:59
>>1


そして。
日本のcakePHP ユーザのためのハブサイト
URLリンク(cakephp-users.jp)

4:nobodyさん
08/06/21 03:16:27
次スレからこれ抜かして、中身の薄いただのgogle広告目当ての商用サイトだから
CakePHP入門リンク集
URLリンク(pub.studio15.jp)

5:nobodyさん
08/06/22 01:07:49
Windows+XAMMP 1.6.6a+CakePHP1.2RC1で
xdebugのコードカバレッジ機能ちゃんと使えている人いる?

Apacheが落ちちゃうんだけど。

6:nobodyさん
08/06/22 18:51:10
RC2待ってる人〜ノシ

7:nobodyさん
08/06/22 19:20:38


8:nobodyさん
08/06/23 11:43:43
closing some more tickets and preparing for RC2

9:nobodyさん
08/06/23 18:12:30 Buu9Vutr
Cake1.2を使用しています。
$hasAndBelongsToManyが設定されたUserモデルとUserGroupモデルがある場合に、
Userを登録すると当時に(単|複)数の所属グループをsaveしたいときって、簡単にするにはどうすればいいのでしょう?

$group_ids = 2;//ユーザーグループのIDを仮に2とする

$data['User']['name'] = $data['User']['name'];
$data['User']['register_date'] = date("Y-m-d H:i:s");
$data['User']['created'] = $data['User']['register_date'];
$data['User']['updated'] = $data['User']['register_date'];
$data['UserGroup']['user_group_id'] = $group_ids;//グループを設定

}
$this->controller->User->create($data);
$this->controller->User->save();//レコードを保存

こうした場合に、グループIDが単数(変数)の場合は無事にUserGroupテーブルにもリンクレコードが書き込まれたのですが、
$group_ids = array(2,3);//ユーザーグループ2&3を同時にリンク設定
としたい場合は別の記述方法があるのでしょうか?




10:nobodyさん
08/06/24 05:09:49
CakePHPで、MySQLのビュー機能とか使ってる人いますか?
作ったビューを普通にusesに入れるだけで問題ないのかな・・・?

11:nobodyさん
08/06/24 12:37:51
you guess it, coffee and tickets...unless anything mjor happens RC2 today

だれか訳して。

12:nobodyさん
08/06/24 15:25:43 FTW7odGn
you guess it, coffee and tickets...unless anything mjor happens RC2 today
あんたが予測するコーヒーとチケット、、、今日出るメジャーなRC2が無くても

13:nobodyさん
08/06/24 15:58:10
余計わからんw

14:nobodyさん
08/06/24 16:32:54
今日RC2でるかも
大きな変更は無いよ

15:nobodyさん
08/06/24 18:09:51
coffee and tickets... unless anything mjor happens RC2 today
「コーヒーとチケットを、、、何が起ころうともRC2は今日だ!」
じゃないかなぁ、、、分からん

16:nobodyさん
08/06/24 18:26:54
違った、「何も起きなければRC2は今日」か

17:nobodyさん
08/06/24 20:12:18
チケットの意味がわからんw

コーヒーはケーキだからとして、
チケット? 食券ということか?

mjor むじゃー mjor むじょあー mjor えむじょあ

18:nobodyさん
08/06/24 20:40:40
チケットは修正項目って事かな?

19:nobodyさん
08/06/24 20:42:03
ticketはtracのチケットとかのこと
mjorはmajorのtypo


20:nobodyさん
08/06/25 02:21:23
”coffee and tickets”でぐぐるとさ、
スターバックスとかでてくるのよ。

なんか修正項目以外の意味があると思うんだど。
ホテルの用語的な。もしかしたらCM?

21:nobodyさん
08/06/25 03:27:40
ticketの意味もわからん奴が何人もいるとはw
CakePHPてこんなレベル低いんけw

22:nobodyさん
08/06/25 03:44:36
>>21
予想通りのレスする奴が出てきたなw

23:nobodyさん
08/06/25 10:18:50
オフ会の話かと思ったぜww

24:nobodyさん
08/06/25 17:50:14
cakeってなんでプロジェクト割れまくってるの?
なんか派生フレームワークだらけなんだけど…

25:nobodyさん
08/06/25 22:53:19
cakeの派生フレームワークってなんだ?

26:nobodyさん
08/06/25 23:00:38
CakePHPとか、日本でローカライズして、携帯電話対応とかしてくれると楽できるんだけどなー。


27:nobodyさん
08/06/25 23:06:02
CakeとCodeIgniter、両方使ったことある人いる?
比べてみて、どう?

設置に関してはCakeが一番かんたんかな?

28:nobodyさん
08/06/25 23:19:01
>>27
いや、CIのほうが簡単かと。
CIのほうがライトウェイト。
日本語マニュアルを読むと、Cakeよりはるかに簡単なのが分かる。

んだけど、Cakeの方がコーディングは楽できる気がするなぁ。

29:nobodyさん
08/06/26 00:53:31
そんな>>27におすすめのフレームワーク
スレリンク(php板)

30:nobodyさん
08/06/26 01:31:17
bakeryそのもののソースってどこかで入手できるんでしょうか?
パク・・いや参考にしてみたいんだけど。

31:nobodyさん
08/06/27 01:01:08 Tw7z8KLr
CakePHP1.2RC1に入れ換えたのですが、AuthComponentの仕様変わった?
それいぜんの1.2で開発したアプリケーションのログイン機能がまるっと動かないのだが。

32:nobodyさん
08/06/27 01:51:42
>>31
CakePHP、あんまりいじってないし、ソース見るの面倒なので、
URLリンク(www.geocities.co.jp)
テキスト比較ツールで比較してみたら結構修正入ってるみたいよ。

33:nobodyさん
08/06/27 02:30:26 bfytbvRv
モデル内からモデルを読み込む方法だけど
こんな感じでやってます。変かな?

function __construct(){
App::import('Model', 'Unko');
$this->model =& new Unko();
}

こうすれば各メソッド内から
$this->modelで呼べる


34:33
08/06/27 02:53:40 bfytbvRv
訂正

function __construct(){
parent::__construct();
App::import('Model', 'Unko');
$this->model =& new Unko();
}
じゃないとバグる

35:nobodyさん
08/06/27 03:02:45 bfytbvRv
CakePHPは
モデル内てコントローラよりも自由度が低いクセに
モデルでのロジックを多く実装するのがベストだなんて
無茶やな。



36:nobodyさん
08/06/27 03:30:21 bfytbvRv
Aモデルの関数内で、Bモデルの関数を呼びたいのなら
コントローラ内でAモデルのメンバ変数にBモデルのオブジェクトを代入すればいいだけか!
そうすれば、モデル内からモデルをimportしなくても済むな!
そうか、そうか

37:nobodyさん
08/06/27 03:50:32 bfytbvRv
結論
モデル内に独自メンバ変数を作ると
モデル内の自由度が上がる

38:nobodyさん
08/06/27 14:30:32
AモデルとBモデルが意味的につながっているのなら、
リレーションがあるはず、つまりアソシエーションでつながっているはず。
その場合、A->B->func()ってな感じで呼び出せる。

39:nobodyさん
08/06/27 19:16:10
よぉ
URLリンク(hal456.net)
これって既出?

マルチバイトのメール送信用のライブラリなんだけど。
CakePHPでも使えるようになってるみたい。

40:nobodyさん
08/06/27 19:38:01
>>39
いいね
φ( ̄ー ̄ )メモメモ

41:nobodyさん
08/06/27 21:35:16
RC2きたね〜

42:nobodyさん
08/06/29 23:54:57
1.1.19で、belongsToがあるモデルのcontrollerをbakeし、
scaffoldingをnにしてbasic class methodsをyにすると、
Look okey? が出る前のところで segmentation fault します。
手作業でコントローラを書いても、webからアクセスすると
apacheがexit signal Segmentation fault (11)になります。
前スレのログが見られないのですが、これは既出ですか?
1.1.18だと問題ないのですが、本家はこの問題に気づいているでしょうか。

43:42
08/06/30 14:56:55
同じような現象が出てる人を見つけました。
URLリンク(logs.cakephp.nu)
URLリンク(groups.google.co.jp)

当方の環境は、サーバはCentOS4・PHPはphp-4.3.9-3.22.9・apacheは2.0.52-38.ent.centos4.2
DBはpostgresql-8.2.6-1PGDGです。svnの1.1.x.xでも同じ現象が起こります。

44:nobodyさん
08/07/01 03:17:12 Qd4NRnlG
>>42
bakeなんて使ってんのw
そういう思考がそもそも素人思考

45:nobodyさん
08/07/01 06:48:02
bake使うことがそんなに問題なの?

一アクション(一ページ)たかだか数行の
テンプレートを生成するだけじゃん。

手動でテンプレートファイルをコピーするのと何も変わらん。

46:nobodyさん
08/07/01 08:05:38
いちいち玄人ぶる奴ってなんなの?
一生そうやって過ごすのかね?

47:nobodyさん
08/07/01 08:26:54
RailsとかAkelosは、いわば最初にbakeしてるようなものだろ。
cakeの場合は、scaffoldでお試しした後でbakeしてるだけで。
やってるのは同じ。bakeを悪く言う意図が分からん。


48:nobodyさん
08/07/01 17:26:19
そんなのも分からないの?
自尊心の維持手段が他にないだけだろう、明らかに。

49:nobodyさん
08/07/01 17:47:52
他人の批難をする事でしか自我の維持が出来ない奴は仕事でも絡むがマジうざいなw

50:nobodyさん
08/07/01 18:02:43
CakePHP用に配布してるアプリケーションで、
アップグレードに伴って、DBのアップグレード
(テーブルや項目の追加)が必要になった場合、
どうやって管理するの?


51:nobodyさん
08/07/01 21:00:29
1.CakePHP migrationでぐぐる

2.CakePHP Schemaでぐぐる
  DBのアップグレードは知らんけど、
  before、afterがあるからそれでやるんじゃね?

52:nobodyさん
08/07/01 21:51:41
どちらもググりましたが。読んだ印象だと、
どちらにも定番の方法が無いように思ったのですが。
CakePHPを使われている皆さんは、苦労されてない?

また、ターミナルを使った処理が必要になるのが、
ちょっと一般向けじゃないなーと。できれば、
アップグレード用の(ローカルの)URLに接続して、
対話的にアップグレードできたら良いのに。

アプリの開発者とかなら、ターミナルでの作業も
平気でしょうけれど。一般の利用者の方にアップ
グレードの作業をしてもらうには、ターミナルは
ちょっと敷居が高いので。

53:nobodyさん
08/07/01 22:11:14
> アップグレード用の(ローカルの)URLに接続して、
> 対話的にアップグレードできたら良いのに。

そういうコントローラを作ったら?

54:nobodyさん
08/07/01 22:20:40
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< なるほど!!
    (つ  丿 \_________
    ⊂_ ノ
      (_)

って、私には無理orz

55:nobodyさん
08/07/01 22:28:14
> って、私には無理orz
なんだ。ひやかしかw

この板に来るべき人じゃないな。君は。

56:nobodyさん
08/07/01 23:23:29
何?ここはそんな高レベルな方々が集う場所でしたか。
そりゃ、失礼しました。

57:nobodyさん
08/07/01 23:38:50
>>56
そのレスのレベルの高さは認めてやる

58:nobodyさん
08/07/01 23:44:44
ま。ひやかしと思われてるついでに。

Akelosだと、migrationではフィールドの種別を
自動で決めてくれたり、hasoneとかの設定でも
指定する内容が少なくて、楽そうなんだけど。

CakePHPは、そういうのをかなりの部分、自分で
設定させられるよね? 入れ格子の配列で。
あれって、不便と思わない?
Akelosみたいに、省略されたら自動で設定される
ようになってたら、もっと楽なのに。

59:nobodyさん
08/07/01 23:50:07
定番な方法がないってのはたしかにややこしいけど、
必要だったら適当に書けばいいんじゃない。

チェックアウトはできるがコンソール使えないみたない
うざいデザイナー相手にしてると嫌になるので
難しいと感じるとしても時間さいて書く価値はあるとおもうよ。

まあ、どの方法使うにしても、
アクセスされたらコマンドなりクエリなりを流すだけだと思うのだが。

60:nobodyさん
08/07/01 23:56:33
Webインターフェイスからのファイル操作は大抵の*nix環境で
パーミッション上の問題が起こると思うんだけど、それは回避できるの?

61:nobodyさん
08/07/02 01:09:16 BNxnFlGa
Akelosを例に出してる時点でおまえプロじゃないな

62:nobodyさん
08/07/02 01:18:39
>>58
なんだ。Cakeでもできることじゃんw

63:nobodyさん
08/07/02 01:20:02
どうせ使うのは開発かテスト環境だろうしなんでもありじゃねえの?
lighttpdで別プロセスとか。apacheだったらsuEXECとか。

64:nobodyさん
08/07/02 01:23:18
そもそもファイル読む以外することあんの?

65:nobodyさん
08/07/02 02:18:17
>>60
p2みたく、ローカルで使うのを想定してるので、なんとかなると思う。

>>61
それはRailsでメシ喰ってる人への挑戦状?

私?私は素人ですけどね。

>>62
できる?
URLリンク(cakephp.jp)
を見ても、やっぱり配列で指定してるんだが。これを、
var $hasOne = 'Profile' ;
だけに出来たら、楽だなーと。
テーブルの作成も、
$this->createTable('users', "id, name, created,updated");
ってしたら、少なくとも規約に沿ってる部分は、
idはINTの自動加算とか、createdはupdatedDATETIMEに
してくれたら、楽だなーと。
ま、些細なことですけどね。ρ(-ε- )イヂイヂ


66:nobodyさん
08/07/02 03:29:29
なにも調べてない奴と話すのは疲れる。お前もう来るな。
URLリンク(book.cakephp.org)
<?php
class User extends AppModel {
 var $name = 'User';
  var $hasOne = 'Profile';
}
?>

67:nobodyさん
08/07/02 04:28:34 taRpZf8M
もっと有益な情報を話し合おうぜw

68:nobodyさん
08/07/02 04:39:46
>>66
普通にそこまで簡略化出来る事を知らなかった俺涙目

69:nobodyさん
08/07/02 06:31:20
RCになって、またAuthコンポーネントのパスワード暗号化のタイミング変わった?
なんで戻したんだろ・・・

70:nobodyさん
08/07/02 11:09:21
>>66
CakePHPのバージョンを書かんかった俺が悪かった。
今、1.1を使ってたんだ。

つーか、ひょっとしてこのスレ、1.2限定?

71:nobodyさん
08/07/02 12:53:32
1.1だろうが必須なのはモデル名だけって書いてあるんだがわからないのだろうか

72:nobodyさん
08/07/02 17:50:07
>>70
試してから言えと何度言われればわかるんだ?

73:nobodyさん
08/07/03 09:53:51
>>71
PHP5なら、モデル名すら、いらんな。

74:nobodyさん
08/07/03 19:53:41
>>73
そっちのモデル名のことじゃないと思うよ。

75:nobodyさん
08/07/05 14:02:26
ようやく試す時間が取れました><
1.1でも、>66みたいに出来ました。
今後ともご指導ご鞭撻の程、よろしくお願い申し上げます。


76:nobodyさん
08/07/06 01:37:16
A,B,Cのテーブルがあって、

A hasMany B

B belongsTo A , B hasMany C

C belongsTo B

の場合、当然、
C belongsTo A
でもあるわけど。それをCのモデルに明示する方法ってありますか?

C belongsTo array('A','B');
ってしたら、scaffoldingのCのviewでエラーが出た。


77:nobodyさん
08/07/06 02:01:54
CにA_idあんの?


78:nobodyさん
08/07/06 02:25:50
CにA_idありました。
もちろん、B_idもあります。


79:nobodyさん
08/07/06 02:37:38
エラーの内容が、
Notice: Undefined index: title in /Applications/MAMP/htdocs/cake/cake/libs/view/templates/scaffolds/view.thtml on line 52
だったので、AやCのテーブルからtitle, nameのフィールドを別名にしたら、
エラーは出なくなりました。

しかし、"title"や"name"が使えないのは痛いな。


80:nobodyさん
08/07/06 02:44:59
んなわけない

81:nobodyさん
08/07/06 02:50:57
あ・・・・・・・・解決したかも・・・・

C belongsTo array('B','A');
って書いてた(汗

C belongsTo array('A','B');
にしたら、直ったっぽい

82:nobodyさん
08/07/06 14:24:50
いまから作る新サイト、1.2でやるべきか悩む…

83:nobodyさん
08/07/06 14:32:55
どっちでもいいよ、覚悟さえすれば。

84:nobodyさん
08/07/07 22:11:14
hasAndBelogsToManyって、便利そうだけど、工夫がいるね。


85:nobodyさん
08/07/09 18:44:09
モデルのメンバ変数でアソシエーション定義すると
既存のデータ取得関数に影響が出るから
アソシエーションの設定は
メソッド単位、もしくはメソッド内のロジック単位で
bindModel() をした方がいいね

86:nobodyさん
08/07/10 03:21:38
自分の選択でフリーターはともかくとして、
フリーターしか選択肢がないというのはよほど問題がある人だろう。
先天や事故で身体的に無理というならばまだしも、
精神的にとかは、もう笑うしかないな。
どれだけ甘えているのだと。
そういうのはバイトで当然だよ。
むしろ金をやる必要すら無い。

87:デフォルトの名無しさん
08/07/10 11:10:29
CakePHP1.2,PHP5でviewにチェックボックスを表示しています。
デフォルトをチェックが入った状態にしたいのですが、以下のようにvalueを指定してもチェックが入りません。
どのように指定すればチェックが入るのでしょうか?

echo'<div>'.$form->checkbox('comset/admin',array('label'=>"",'value'=>1)).'管理者のみ表示</div>';

88:nobodyさん
08/07/10 13:01:36
>>87
# ComsetsController
if (emtpy($this->data))
$this->data['Comset']['admin'] = 1;
# Views
echo'<div>'.$form->checkbox('Comset.admin',array('label'=>"")).'管理者のみ表示</div>';
じゃないかな?

89:nobodyさん
08/07/10 13:05:38
>>85
1.2ならContainableビヘイビア

90:nobodyさん
08/07/10 14:37:07
beforeFindで$queryDataを見て、特定の検索条件があったときに
ほにゃらって処理をしているんだけど、

CakePHP1.2から、$conditions => array('key =' => 'value');になったでしょ?
今まではarray_keysでkeyがあるかどうかって見ていたんだけど、
これからは'key ?'ってなっちゃって?の部分が変わるから
単純にarray_keysが使えないんだよね。

これの代わりになる便利な関数って用意されているか知らない?

91:87
08/07/10 16:53:38
>>88
実現できました、ありがとうございます。

立て続けで申し訳ないのですが、ラジオボタンの表示で
ラジオにチェックを入れるにはどのように指定すればよいのでしょうか?
ラジオの数が動的に変わるため、以下のようにして作成しています。
ループ内である条件に一致する場合に、ラジオにチェックを入れるようにしたいです。
一致するのはループ内で1回のみです。
for($i=1; $i<=$n; $i++){
$arradio[$i] = $dt_hoge['Table']['no_'.$i]."<br />";
}
echo '<div>'.$form->radio('hogeset/hoge',$arradio,array('legend' => false)).'</div>';

92:nobodyさん
08/07/10 17:06:37
>>91
forはview内かな?
だとしたら、viewで
if (!empty($this->data['Hogeset']['hoge']) $this->data['Hogeset']['hoge'] = 初期値 ;
じゃまいか?
やりたいことを、良く理解していないから、はずしてたらすまん。

93:87
08/07/10 19:50:48
>>92
ありがとうございます。

$this->dataがない状態で選択しようとしたからか、
教えていただいた方法では、実現できませんでした。

いろいろ試してみた結果、
選択したい値をradio生成時にvalueで指定したらとりあえずできました。
echo '<div>'.$form->radio('ansset/ansr',$arradio,array('legend' => false,'value'=>4)).'</div>';

94:nobodyさん
08/07/10 20:52:53
>>93
valueを直で指定すると、validation error のときに困るんじゃない?

95:nobodyさん
08/07/11 15:46:07

今、1.2betaから1.2RC2に移行しているわけだが、

変わりすぎてて俺、涙目wwwww orz



RC2 から 正式版の間ではあまり変わらない事を祈っている・・・

96:nobodyさん
08/07/11 16:03:01
stableっていつごろなのかな?
RC1→2はわりと早かったけど・・・

97:nobodyさん
08/07/11 17:01:52
1.2出たら、ポケットマニュアルも1.2対応で
すぐに出るんだろうか?

98:nobodyさん
08/07/12 03:58:01 GP2h4Bov
Aモデルの中で
Bモデル->save()みたいなことしたいけど、ダメ?
コントローラ内で
Aモデルのデータとってきて
$this->Bモデル->save()するを完結するのががベストかな?



99:nobodyさん
08/07/12 03:59:50 GP2h4Bov
モデルを厚くするのがベストてCakePHPに書いてあるけど
モデルの自由度が凄く悪い気がするんだが・・・


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


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5319日前に更新/182 KB
担当:undef