【PHP】フレームワーク CakePHP 4ホール目【v1.2】

このエントリーをはてなブックマークに追加
1nobodyさん
http://www.cakephp.org/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

マニュアル日本語化
http://www.cakephp.jp/doc/

Cookbook :: 1.2 Collection :: マニュアル
http://book.cakephp.org/ja

日本語フォーラム
http://cakephp.jp/modules/newbb/

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/

CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/

【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
2nobodyさん:2008/06/20(金) 06:26:03 ID:???
2? そして乙
3nobodyさん:2008/06/20(金) 09:26:59 ID:???
>>1


そして。
日本のcakePHP ユーザのためのハブサイト
http://cakephp-users.jp/
4nobodyさん:2008/06/21(土) 03:16:27 ID:???
次スレからこれ抜かして、中身の薄いただのgogle広告目当ての商用サイトだから
CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/
5nobodyさん:2008/06/22(日) 01:07:49 ID:???
Windows+XAMMP 1.6.6a+CakePHP1.2RC1で
xdebugのコードカバレッジ機能ちゃんと使えている人いる?

Apacheが落ちちゃうんだけど。
6nobodyさん:2008/06/22(日) 18:51:10 ID:???
RC2待ってる人〜ノシ
7nobodyさん:2008/06/22(日) 19:20:38 ID:???
8nobodyさん:2008/06/23(月) 11:43:43 ID:???
closing some more tickets and preparing for RC2
9nobodyさん:2008/06/23(月) 18:12:30 ID: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を同時にリンク設定
としたい場合は別の記述方法があるのでしょうか?


10nobodyさん:2008/06/24(火) 05:09:49 ID:???
CakePHPで、MySQLのビュー機能とか使ってる人いますか?
作ったビューを普通にusesに入れるだけで問題ないのかな・・・?
11nobodyさん:2008/06/24(火) 12:37:51 ID:???
you guess it, coffee and tickets...unless anything mjor happens RC2 today

だれか訳して。
12nobodyさん:2008/06/24(火) 15:25:43 ID:FTW7odGn
you guess it, coffee and tickets...unless anything mjor happens RC2 today
あんたが予測するコーヒーとチケット、、、今日出るメジャーなRC2が無くても
13nobodyさん:2008/06/24(火) 15:58:10 ID:???
余計わからんw
14nobodyさん:2008/06/24(火) 16:32:54 ID:???
今日RC2でるかも
大きな変更は無いよ
15nobodyさん:2008/06/24(火) 18:09:51 ID:???
coffee and tickets... unless anything mjor happens RC2 today
「コーヒーとチケットを、、、何が起ころうともRC2は今日だ!」
じゃないかなぁ、、、分からん
16nobodyさん:2008/06/24(火) 18:26:54 ID:???
違った、「何も起きなければRC2は今日」か
17nobodyさん:2008/06/24(火) 20:12:18 ID:???
チケットの意味がわからんw

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

mjor むじゃー mjor むじょあー mjor えむじょあ
18nobodyさん:2008/06/24(火) 20:40:40 ID:???
チケットは修正項目って事かな?
19nobodyさん:2008/06/24(火) 20:42:03 ID:???
ticketはtracのチケットとかのこと
mjorはmajorのtypo
20nobodyさん:2008/06/25(水) 02:21:23 ID:???
”coffee and tickets”でぐぐるとさ、
スターバックスとかでてくるのよ。

なんか修正項目以外の意味があると思うんだど。
ホテルの用語的な。もしかしたらCM?
21nobodyさん:2008/06/25(水) 03:27:40 ID:???
ticketの意味もわからん奴が何人もいるとはw
CakePHPてこんなレベル低いんけw
22nobodyさん:2008/06/25(水) 03:44:36 ID:???
>>21
予想通りのレスする奴が出てきたなw
23nobodyさん:2008/06/25(水) 10:18:50 ID:???
オフ会の話かと思ったぜww
24nobodyさん:2008/06/25(水) 17:50:14 ID:???
cakeってなんでプロジェクト割れまくってるの?
なんか派生フレームワークだらけなんだけど…
25nobodyさん:2008/06/25(水) 22:53:19 ID:???
cakeの派生フレームワークってなんだ?
26nobodyさん:2008/06/25(水) 23:00:38 ID:???
CakePHPとか、日本でローカライズして、携帯電話対応とかしてくれると楽できるんだけどなー。
27nobodyさん:2008/06/25(水) 23:06:02 ID:???
CakeとCodeIgniter、両方使ったことある人いる?
比べてみて、どう?

設置に関してはCakeが一番かんたんかな?
28nobodyさん:2008/06/25(水) 23:19:01 ID:???
>>27
いや、CIのほうが簡単かと。
CIのほうがライトウェイト。
日本語マニュアルを読むと、Cakeよりはるかに簡単なのが分かる。

んだけど、Cakeの方がコーディングは楽できる気がするなぁ。
29nobodyさん:2008/06/26(木) 00:53:31 ID:???
そんな>>27におすすめのフレームワーク
http://pc11.2ch.net/test/read.cgi/php/1122105465/
30nobodyさん:2008/06/26(木) 01:31:17 ID:???
bakeryそのもののソースってどこかで入手できるんでしょうか?
パク・・いや参考にしてみたいんだけど。
31nobodyさん:2008/06/27(金) 01:01:08 ID:Tw7z8KLr
CakePHP1.2RC1に入れ換えたのですが、AuthComponentの仕様変わった?
それいぜんの1.2で開発したアプリケーションのログイン機能がまるっと動かないのだが。
32nobodyさん:2008/06/27(金) 01:51:42 ID:???
>>31
CakePHP、あんまりいじってないし、ソース見るの面倒なので、
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html
テキスト比較ツールで比較してみたら結構修正入ってるみたいよ。
33nobodyさん:2008/06/27(金) 02:30:26 ID:bfytbvRv
モデル内からモデルを読み込む方法だけど
こんな感じでやってます。変かな?

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

こうすれば各メソッド内から
$this->modelで呼べる
3433:2008/06/27(金) 02:53:40 ID:bfytbvRv
訂正

function __construct(){
parent::__construct();
App::import('Model', 'Unko');
$this->model =& new Unko();
}
じゃないとバグる
35nobodyさん:2008/06/27(金) 03:02:45 ID:bfytbvRv
CakePHPは
モデル内てコントローラよりも自由度が低いクセに
モデルでのロジックを多く実装するのがベストだなんて
無茶やな。

36nobodyさん:2008/06/27(金) 03:30:21 ID:bfytbvRv
Aモデルの関数内で、Bモデルの関数を呼びたいのなら
コントローラ内でAモデルのメンバ変数にBモデルのオブジェクトを代入すればいいだけか!
そうすれば、モデル内からモデルをimportしなくても済むな!
そうか、そうか
37nobodyさん:2008/06/27(金) 03:50:32 ID:bfytbvRv
結論
モデル内に独自メンバ変数を作ると
モデル内の自由度が上がる
38nobodyさん:2008/06/27(金) 14:30:32 ID:???
AモデルとBモデルが意味的につながっているのなら、
リレーションがあるはず、つまりアソシエーションでつながっているはず。
その場合、A->B->func()ってな感じで呼び出せる。
39nobodyさん:2008/06/27(金) 19:16:10 ID:???
よぉ
http://hal456.net/qdmail/
これって既出?

マルチバイトのメール送信用のライブラリなんだけど。
CakePHPでも使えるようになってるみたい。
40nobodyさん:2008/06/27(金) 19:38:01 ID:???
>>39
いいね
φ( ̄ー ̄ )メモメモ
41nobodyさん:2008/06/27(金) 21:35:16 ID:???
RC2きたね〜
42nobodyさん:2008/06/29(日) 23:54:57 ID:???
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だと問題ないのですが、本家はこの問題に気づいているでしょうか。
4342:2008/06/30(月) 14:56:55 ID:???
同じような現象が出てる人を見つけました。
ttp://logs.cakephp.nu/cakephp/chat.log.2008-01-02#line_11_33_taddis
ttp://groups.google.co.jp/group/cakephp-de/browse_thread/thread/88c5b12791c71db2/5880a05bac875f55?lnk=raot

当方の環境は、サーバは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でも同じ現象が起こります。
44nobodyさん:2008/07/01(火) 03:17:12 ID:Qd4NRnlG
>>42
bakeなんて使ってんのw
そういう思考がそもそも素人思考
45nobodyさん:2008/07/01(火) 06:48:02 ID:???
bake使うことがそんなに問題なの?

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

手動でテンプレートファイルをコピーするのと何も変わらん。
46nobodyさん:2008/07/01(火) 08:05:38 ID:???
いちいち玄人ぶる奴ってなんなの?
一生そうやって過ごすのかね?
47nobodyさん:2008/07/01(火) 08:26:54 ID:???
RailsとかAkelosは、いわば最初にbakeしてるようなものだろ。
cakeの場合は、scaffoldでお試しした後でbakeしてるだけで。
やってるのは同じ。bakeを悪く言う意図が分からん。
48nobodyさん:2008/07/01(火) 17:26:19 ID:???
そんなのも分からないの?
自尊心の維持手段が他にないだけだろう、明らかに。
49nobodyさん:2008/07/01(火) 17:47:52 ID:???
他人の批難をする事でしか自我の維持が出来ない奴は仕事でも絡むがマジうざいなw
50nobodyさん:2008/07/01(火) 18:02:43 ID:???
CakePHP用に配布してるアプリケーションで、
アップグレードに伴って、DBのアップグレード
(テーブルや項目の追加)が必要になった場合、
どうやって管理するの?
51nobodyさん:2008/07/01(火) 21:00:29 ID:???
1.CakePHP migrationでぐぐる

2.CakePHP Schemaでぐぐる
  DBのアップグレードは知らんけど、
  before、afterがあるからそれでやるんじゃね?
52nobodyさん:2008/07/01(火) 21:51:41 ID:???
どちらもググりましたが。読んだ印象だと、
どちらにも定番の方法が無いように思ったのですが。
CakePHPを使われている皆さんは、苦労されてない?

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

アプリの開発者とかなら、ターミナルでの作業も
平気でしょうけれど。一般の利用者の方にアップ
グレードの作業をしてもらうには、ターミナルは
ちょっと敷居が高いので。
53nobodyさん:2008/07/01(火) 22:11:14 ID:???
> アップグレード用の(ローカルの)URLに接続して、
> 対話的にアップグレードできたら良いのに。

そういうコントローラを作ったら?
54nobodyさん:2008/07/01(火) 22:20:40 ID:???
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< なるほど!!
    (つ  丿 \_________
    ⊂_ ノ
      (_)

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

この板に来るべき人じゃないな。君は。
56nobodyさん:2008/07/01(火) 23:23:29 ID:???
何?ここはそんな高レベルな方々が集う場所でしたか。
そりゃ、失礼しました。
57nobodyさん:2008/07/01(火) 23:38:50 ID:???
>>56
そのレスのレベルの高さは認めてやる
58nobodyさん:2008/07/01(火) 23:44:44 ID:???
ま。ひやかしと思われてるついでに。

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

CakePHPは、そういうのをかなりの部分、自分で
設定させられるよね? 入れ格子の配列で。
あれって、不便と思わない?
Akelosみたいに、省略されたら自動で設定される
ようになってたら、もっと楽なのに。
59nobodyさん:2008/07/01(火) 23:50:07 ID:???
定番な方法がないってのはたしかにややこしいけど、
必要だったら適当に書けばいいんじゃない。

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

まあ、どの方法使うにしても、
アクセスされたらコマンドなりクエリなりを流すだけだと思うのだが。
60nobodyさん:2008/07/01(火) 23:56:33 ID:???
Webインターフェイスからのファイル操作は大抵の*nix環境で
パーミッション上の問題が起こると思うんだけど、それは回避できるの?
61nobodyさん:2008/07/02(水) 01:09:16 ID:BNxnFlGa
Akelosを例に出してる時点でおまえプロじゃないな
62nobodyさん:2008/07/02(水) 01:18:39 ID:???
>>58
なんだ。Cakeでもできることじゃんw
63nobodyさん:2008/07/02(水) 01:20:02 ID:???
どうせ使うのは開発かテスト環境だろうしなんでもありじゃねえの?
lighttpdで別プロセスとか。apacheだったらsuEXECとか。
64nobodyさん:2008/07/02(水) 01:23:18 ID:???
そもそもファイル読む以外することあんの?
65nobodyさん:2008/07/02(水) 02:18:17 ID:???
>>60
p2みたく、ローカルで使うのを想定してるので、なんとかなると思う。

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

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

>>62
できる?
http://cakephp.jp/doc/ch06s04.html
を見ても、やっぱり配列で指定してるんだが。これを、
var $hasOne = 'Profile' ;
だけに出来たら、楽だなーと。
テーブルの作成も、
$this->createTable('users', "id, name, created,updated");
ってしたら、少なくとも規約に沿ってる部分は、
idはINTの自動加算とか、createdはupdatedDATETIMEに
してくれたら、楽だなーと。
ま、些細なことですけどね。ρ(-ε- )イヂイヂ
66nobodyさん:2008/07/02(水) 03:29:29 ID:???
なにも調べてない奴と話すのは疲れる。お前もう来るな。
http://book.cakephp.org/ja/complete/80/hasone
<?php
class User extends AppModel {
 var $name = 'User';
  var $hasOne = 'Profile';
}
?>
67nobodyさん:2008/07/02(水) 04:28:34 ID:taRpZf8M
もっと有益な情報を話し合おうぜw
68nobodyさん:2008/07/02(水) 04:39:46 ID:???
>>66
普通にそこまで簡略化出来る事を知らなかった俺涙目
69nobodyさん:2008/07/02(水) 06:31:20 ID:???
RCになって、またAuthコンポーネントのパスワード暗号化のタイミング変わった?
なんで戻したんだろ・・・
70nobodyさん:2008/07/02(水) 11:09:21 ID:???
>>66
CakePHPのバージョンを書かんかった俺が悪かった。
今、1.1を使ってたんだ。

つーか、ひょっとしてこのスレ、1.2限定?
71nobodyさん:2008/07/02(水) 12:53:32 ID:???
1.1だろうが必須なのはモデル名だけって書いてあるんだがわからないのだろうか
72nobodyさん:2008/07/02(水) 17:50:07 ID:???
>>70
試してから言えと何度言われればわかるんだ?
73nobodyさん:2008/07/03(木) 09:53:51 ID:???
>>71
PHP5なら、モデル名すら、いらんな。
74nobodyさん:2008/07/03(木) 19:53:41 ID:???
>>73
そっちのモデル名のことじゃないと思うよ。
75nobodyさん:2008/07/05(土) 14:02:26 ID:???
ようやく試す時間が取れました><
1.1でも、>66みたいに出来ました。
今後ともご指導ご鞭撻の程、よろしくお願い申し上げます。
76nobodyさん:2008/07/06(日) 01:37:16 ID:???
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でエラーが出た。
77nobodyさん:2008/07/06(日) 02:01:54 ID:???
CにA_idあんの?
78nobodyさん:2008/07/06(日) 02:25:50 ID:???
CにA_idありました。
もちろん、B_idもあります。
79nobodyさん:2008/07/06(日) 02:37:38 ID:???
エラーの内容が、
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"が使えないのは痛いな。
80nobodyさん:2008/07/06(日) 02:44:59 ID:???
んなわけない
81nobodyさん:2008/07/06(日) 02:50:57 ID:???
あ・・・・・・・・解決したかも・・・・

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

C belongsTo array('A','B');
にしたら、直ったっぽい
82nobodyさん:2008/07/06(日) 14:24:50 ID:???
いまから作る新サイト、1.2でやるべきか悩む…
83nobodyさん:2008/07/06(日) 14:32:55 ID:???
どっちでもいいよ、覚悟さえすれば。
84nobodyさん:2008/07/07(月) 22:11:14 ID:???
hasAndBelogsToManyって、便利そうだけど、工夫がいるね。
85nobodyさん:2008/07/09(水) 18:44:09 ID:???
モデルのメンバ変数でアソシエーション定義すると
既存のデータ取得関数に影響が出るから
アソシエーションの設定は
メソッド単位、もしくはメソッド内のロジック単位で
bindModel() をした方がいいね
86nobodyさん:2008/07/10(木) 03:21:38 ID:???
自分の選択でフリーターはともかくとして、
フリーターしか選択肢がないというのはよほど問題がある人だろう。
先天や事故で身体的に無理というならばまだしも、
精神的にとかは、もう笑うしかないな。
どれだけ甘えているのだと。
そういうのはバイトで当然だよ。
むしろ金をやる必要すら無い。
87デフォルトの名無しさん:2008/07/10(木) 11:10:29 ID:???
CakePHP1.2,PHP5でviewにチェックボックスを表示しています。
デフォルトをチェックが入った状態にしたいのですが、以下のようにvalueを指定してもチェックが入りません。
どのように指定すればチェックが入るのでしょうか?

echo'<div>'.$form->checkbox('comset/admin',array('label'=>"",'value'=>1)).'管理者のみ表示</div>';
88nobodyさん:2008/07/10(木) 13:01:36 ID:???
>>87
# ComsetsController
if (emtpy($this->data))
$this->data['Comset']['admin'] = 1;
# Views
echo'<div>'.$form->checkbox('Comset.admin',array('label'=>"")).'管理者のみ表示</div>';
じゃないかな?
89nobodyさん:2008/07/10(木) 13:05:38 ID:???
>>85
1.2ならContainableビヘイビア
90nobodyさん:2008/07/10(木) 14:37:07 ID:???
beforeFindで$queryDataを見て、特定の検索条件があったときに
ほにゃらって処理をしているんだけど、

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

これの代わりになる便利な関数って用意されているか知らない?
9187:2008/07/10(木) 16:53:38 ID:???
>>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>';
92nobodyさん:2008/07/10(木) 17:06:37 ID:???
>>91
forはview内かな?
だとしたら、viewで
if (!empty($this->data['Hogeset']['hoge']) $this->data['Hogeset']['hoge'] = 初期値 ;
じゃまいか?
やりたいことを、良く理解していないから、はずしてたらすまん。
9387:2008/07/10(木) 19:50:48 ID:???
>>92
ありがとうございます。

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

いろいろ試してみた結果、
選択したい値をradio生成時にvalueで指定したらとりあえずできました。
echo '<div>'.$form->radio('ansset/ansr',$arradio,array('legend' => false,'value'=>4)).'</div>';
94nobodyさん:2008/07/10(木) 20:52:53 ID:???
>>93
valueを直で指定すると、validation error のときに困るんじゃない?
95nobodyさん:2008/07/11(金) 15:46:07 ID:???

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

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



RC2 から 正式版の間ではあまり変わらない事を祈っている・・・
96nobodyさん:2008/07/11(金) 16:03:01 ID:???
stableっていつごろなのかな?
RC1→2はわりと早かったけど・・・
97nobodyさん:2008/07/11(金) 17:01:52 ID:???
1.2出たら、ポケットマニュアルも1.2対応で
すぐに出るんだろうか?
98nobodyさん:2008/07/12(土) 03:58:01 ID:GP2h4Bov
Aモデルの中で
Bモデル->save()みたいなことしたいけど、ダメ?
コントローラ内で
Aモデルのデータとってきて
$this->Bモデル->save()するを完結するのががベストかな?

99nobodyさん:2008/07/12(土) 03:59:50 ID:GP2h4Bov
モデルを厚くするのがベストてCakePHPに書いてあるけど
モデルの自由度が凄く悪い気がするんだが・・・
100nobodyさん:2008/07/12(土) 04:04:06 ID:GP2h4Bov
コントローラだと何でも出来ちゃうから
結局コントローラが厚くなってしまうんだよな
一通りコーディングが終わってからリファクタリングする形で
モデルを厚くしていかないと。
調べながらだと時間もったい気がする
101nobodyさん:2008/07/12(土) 11:07:21 ID:???
1.2のスライドにも、モデルが薄く、
コントローラが厚くなってしまうのが
問題って書いてあるな。
わざわざスライドにしてるってことは、
1.2で改善されるんやろか?
102nobodyさん:2008/07/12(土) 13:48:03 ID:???
問題なのは、フレームワークじゃなくて、
そういうコードを書くなってことだろう。
103nobodyさん:2008/07/12(土) 19:30:01 ID:???
>>100
> コントローラだと何でも出来ちゃうから
> 結局コントローラが厚くなってしまうんだよな

似たような話。

関数作らなくても何でも出来ちゃうから
結局コードが長くなってしまうんだよな。

結局だ、単なる経験の問題。
経験をつめば自然といいコードが書けるようになるよ。
104nobodyさん:2008/07/13(日) 07:35:50 ID:yyUJjXK2
どれだけ頑張っても
ModelとControllerの厚さを同じくらいにまでしか
もっていけねえw
強引にモデルにもっていけなら別だけどw
105nobodyさん:2008/07/13(日) 17:55:25 ID:???
初歩的な質問なんだけど、WEBのフォームから渡された値って、
基本的にモデルのvalidatesで全部チェックしていいんもんなんですか?

例えば、会員の新規登録でパスワード(password)と
パスワード確認(password2)を比較して同一かチェックするとか。
106nobodyさん:2008/07/13(日) 18:01:54 ID:???
規約に同意するかどうか、とかもモデルのバリデーションでやってます。
107nobodyさん:2008/07/14(月) 02:01:47 ID:???
「CakePHPガイドブック」ってもう廃刊なのですか?
去年末に発売したばっかりなのになぜ?
108nobodyさん:2008/07/14(月) 06:42:09 ID:???
内容が基本的に1.1だからでは?
フレームワーク本としては、かなりいい本。
109nobodyさん:2008/07/14(月) 14:05:46 ID:???
1.2RC2の話。

1.2からbehaviorsのattach/detachができるって、
あちこちに書いてあるけど、最近仕様が変わってるっぽいね。

よく書いてあるのが、コントローラで$this->Model->attach(ビヘイビア名)。
でも今は$this->Model->Behaviors->attach(ビヘイビア名)
間に、Behaviors(BehaviorCollection)が入ったようだ。
110nobodyさん:2008/07/14(月) 15:48:07 ID:???
チラシの裏

どうも、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っているんだろうか?前のリビジョンのコードには存在しなかった。
とりあえず取ってみたが変化はわからない。
現在リファクタイリング中みたいだからそのうちどうにかされるのかもしれない。
111105:2008/07/14(月) 17:10:17 ID:???
>>106
そういうもんなんですね。
どもです。
112nobodyさん:2008/07/15(火) 10:18:07 ID:???
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')
);
113nobodyさん:2008/07/15(火) 14:41:34 ID:kKo7V/Gs
DBに入れるほどではなく、CSVファイルとしてデータを持っていて
それをコントローラから参照したい場合、CSVファイルはどこに設置するのが
一番スマートなんでしょうか?
114nobodyさん:2008/07/15(火) 14:50:47 ID:???
俺もそれ知りたいな。
XMLファイルとか。

tmpフォルダとかかな?
115nobodyさん:2008/07/15(火) 16:20:51 ID:???
>>113
webroot の files フォルダ。これが一番いいと思う。
116nobodyさん:2008/07/15(火) 17:29:56 ID:???
>>115
外部から見られたくないファイルなのでは??
117113:2008/07/15(火) 20:00:24 ID:???
>>115
そうなんです、外部から見られたくはない。
いや見られても良いデータなんですけど、なんか変な感じなので。

>>114
tmpフォルダは考えたんですけど、役割的に違和感があるんですよね。


まぁ、結局DBにつっこんで今はやってみましたけど。
うーん。
118nobodyさん:2008/07/15(火) 20:22:19 ID:???
バージョンアップの際、appフォルダごと入れ替えるため、
appフォルダ以下にはデータは入れたくない。
cakeフォルダ以下には、データは入れるはずない。

appやcakeフォルダと同じ階層に、dataフォルダでも
作って、例えば画像ファイルとか入れられれば、
良さげに思うが。それは無理なん?
119113:2008/07/16(水) 11:57:50 ID:???
>>118
あ、その方法がありましたね。
確かにそれであれば全然いける上に、スマートかも。
ありがとです。今後、検討してみます。
120nobodyさん:2008/07/16(水) 13:11:14 ID:ahXuksxu
>>113
DBに入れるほどではないデータは配列にしてモデルに入れてるよ
121nobodyさん:2008/07/16(水) 13:16:24 ID:ahXuksxu
画像ファイルはvendorsでいいと思うんだが

122nobodyさん:2008/07/16(水) 13:22:04 ID:ahXuksxu
一番スマートなのはプロジェクトappと同じ階層にdataフォルダだな
CakePHPはデータ保存場所を考慮したフォルダ構成じゃないから
CakePHP内にデータを置くこと自体がスマートじゃ無いってことかな
123nobodyさん:2008/07/16(水) 13:24:33 ID:ahXuksxu
フレームワークの中にデータを保管しようという思考が
そもそも、おかしい気がしてきたよ
124nobodyさん:2008/07/16(水) 13:27:51 ID:ahXuksxu
フレームワーク外にcsvファイルを置くのが一番ベストだ!
125nobodyさん:2008/07/17(木) 08:07:12 ID:/Q3Ys2pH
フレームワークっていつまで使えるだろう
10年後、20年後にも、CakePHPはあるだろうか?
そもそもPHPは使われてるだろうか?
126nobodyさん:2008/07/17(木) 08:11:21 ID:???
>>125
ムリポ
127nobodyさん:2008/07/17(木) 08:46:29 ID:???
>>125
じゃあ、こう考えるんだ
10年前はどうだったかを。

それで今も残っていればあるってことになる。

って10年前はPHPそのものがなかったか。
128nobodyさん:2008/07/17(木) 09:23:54 ID:r8Tb5l59
その都度、旬な商売道具(今ならphpフレームワーク)使って儲けるしかない。
これやれば10年後安心てのはIT社会には無い
129nobodyさん:2008/07/17(木) 09:26:42 ID:???
UTF-8、PHP1.2で作ってるんだけど
フォルダ内のファイル名を読み込んだ時に
$file = readdir($dir)
だけだと日本語のファイル名が文字化けしてしまう。
部分的に関数通して文字化け回避する方法ってある?
130129:2008/07/17(木) 09:58:29 ID:???
128はCakePHP1.2の間違いです。
131nobodyさん:2008/07/17(木) 16:12:51 ID:hC9JNlTl
CakePHP1.2を使用しているのですが、
AppModel::queryを使って取得したデータを
paginatorに渡す方法ってありますか?
132131:2008/07/17(木) 16:26:20 ID:hC9JNlTl
任意のSQLでpaginateがしたいんです!

133131:2008/07/17(木) 17:05:12 ID:hC9JNlTl
無茶苦茶な方法ではありますが、
対象のModelでpaginateをオーバーライドして、
$coditionsの中にsqlを入れて取り合えず
期待する動作は得られるようになりました。
134nobodyさん:2008/07/17(木) 18:56:26 ID:???
>>127
PHPはあっただろw
135nobodyさん:2008/07/18(金) 16:19:03 ID:???
>>133
無茶じゃなくてまっとうな方法。
Modelにpaginateメソッドは存在しないからオーバーライドではない。
Controllerのpaginateメソッドが最終的にfindする際に
Modelのpaginateメソッドが存在すれば代わりにそっちを呼ぶようにに作ってある。

136nobodyさん:2008/07/18(金) 19:07:42 ID:???
modelはDBのテーブルと1対1が想定されているけど

DBテーブルに登録する際にバリデート内容が異なる画面が3つあった場合
DBテーブル1に対してモデルが3つ必要になるよね

Aテーブルがあったとしたら
A1モデル 使用テーブルA
A2モデル 使用テーブルA
A3モデル 使用テーブルA
それぞれのバリデート処理を実装することになるよね
137nobodyさん:2008/07/18(金) 19:08:40 ID:???
ログイン形式の携帯サイトを作ってるのですが、
CakePHPで「ログインされたかどうか」はどのように持つのが一般的なのでしょうか?
PCサイトではセッションを使うことが多かったんですが、キャリアによってセッションが使えない場合があると聞いたもので。
138nobodyさん:2008/07/18(金) 19:11:29 ID:???
DBテーブルに登録する際にバリデート内容が異なる画面が3つあった場合
ひとつのモデルで完結できるのかな?

A1モデル 使用テーブルA

画面1のバリデート処理
画面2のバリデート処理
画面3のバリデート処理
139nobodyさん:2008/07/18(金) 23:07:31 ID:???
普通にケースごとのvalidateメソッド書いてるけど。
140nobodyさん:2008/07/19(土) 11:23:27 ID:???
>>137
自分は
セッションとクッキーの連携プレーを使ってるよ。

キャリアって携帯でしょ?
携帯の場合はセッションキーをクッキーに埋め込むのよ。

141nobodyさん:2008/07/19(土) 13:45:27 ID:???
携帯ではクッキーが使えない機種があるだろw
142nobodyさん:2008/07/19(土) 15:54:19 ID:???
>>137
普通にURLにセションキー埋め込めよ。

>>140
( ゚д゚)ポカーン
143nobodyさん:2008/07/19(土) 16:24:22 ID: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だけで管理するのしんどいよ。
144nobodyさん:2008/07/19(土) 16:28:28 ID:???
モデルが30個もあるシステムをCakeで作るとは・・・
どんなシステム?レスポンスどうなの?
145nobodyさん:2008/07/19(土) 16:39:57 ID:jBy/EgFS
>>144
A8のようなアフィリエイトサイトだよ。
レスポンスはアソシエーションを
その都度 bindModelする方法なら悪くはないよ
重くなるとしたらSQL関連だと思うから後はcacheに頼る
146nobodyさん:2008/07/19(土) 16:45:53 ID:???
一つのコントローラに詰め込み過ぎじゃないの?
147nobodyさん:2008/07/19(土) 16:58:22 ID:jBy/EgFS
>>146
30個あるモデルは使用するDBテーブルは同じでバリデートの内容が若干違うので
モデルを複数分けした。
なのでモデルの数だけコントローラを増やすというのもなあ・・・
ページ構成もおかしくなるし
148nobodyさん:2008/07/19(土) 17:03:55 ID:jBy/EgFS
コントローラの数はDBテーブルの数と比例するくらいの量で
モデルの数はバリデートのケース分、増えて行ってる
149nobodyさん:2008/07/19(土) 17:08:42 ID:jBy/EgFS
1つのDBに対して30通りのバリデートのケースがあれば
コントローラが1に対してもモデルが30になる
150nobodyさん:2008/07/19(土) 17:23:07 ID:jBy/EgFS
レスポンス的にはApp::Import('Model', $model_name);の方が負荷は軽減できるよね
管理的にも$usesで管理するよりも
コントローラメソッドの先頭でApp::Importを宣言する方が管理しやすい気がする
デメリットはコーディング量が少し増えるくらいかな
でも、どのコントローラメソッドでも使うモデルだけは$usesに入れるから
そんなにコーディング量は増えないかな
151nobodyさん:2008/07/19(土) 17:41:39 ID:???
>>148
そもそも、バリデートの数の分だけ
モデルを増やすのがおかしくね?

モデルのsave()で、バリデートするかしないかのフラグがあるだろ?
これって考え方を変えれば、バリデート1(データチェックする)、
バリデート2(データチェックを一切しない)という二つのバリデートと考えられる。

だからバリデート3(一部だけチェックする)ってのも、一つのモデルに入れてしまうのもありと思うが。

あとは、Model->save()の前に、Model->バリデートタイプ = '一部チェック';
なんてやっておいて、Modelのvalidateメソッドあたりで、バリデートタイプをみて
チェック項目を変更すれば良いんじゃね?

Modelのvar $validate、やったことないけど、
コードの中からでも変更できるんじゃね?
152nobodyさん:2008/07/19(土) 17:45:08 ID:???
バリデーションでモデル分けるのか・・・
なんか変な感じ。
153nobodyさん:2008/07/19(土) 17:51:24 ID:???
それと、App::Importよりも、Controller::loadModel()の方がよくね?
いや、使ったこと無いし情報も見つからなかったからよく知らんが。

ちなみに非推奨になったloadModel関数ではなく、
コントローラのメソッドのloadModel()だから。
154nobodyさん:2008/07/19(土) 17:55:57 ID:jBy/EgFS
Modelのvar $validateが
$validate1
$validate2
$validate3
という風に複数使えれば
バリデート分モデルを増やす必要は無いけど
バリデートタイプをみてチェック項目を変更ていうのは
変更項目が多いとコードが複雑に肥大化するのがなあ・・・



155nobodyさん:2008/07/19(土) 18:04:40 ID:???
>>154
やろうと思えば、できるとおもうけど?

コントローラで、$model->save()呼び出し前に
$model->validate_type = 'type1';

モデルのどこかで、$this->validate = $this->{'validate_' . $this->validate_type};

そうすりゃ、$validate_type の条件でチェックしてくれるよ。

具体的にどこのメソッドでやるのがふさわしいかは
ちょっとやってみないとわからないけど。
156nobodyさん:2008/07/19(土) 18:05:53 ID:???
訂正

そうすりゃ、$validate_type1 の条件でチェックしてくれるよ。
157nobodyさん:2008/07/19(土) 18:19:45 ID:jBy/EgFS
>>156
その方法で出来るのなら、ちょっと試してみます
158nobodyさん:2008/07/19(土) 18:24:34 ID:jBy/EgFS
>>153
App::Importよりも、Controller::loadModel()の方がよくね

理由は何でしょうか?
どう違うのですか?
159nobodyさん:2008/07/19(土) 18:36:14 ID:???
>>158
$usesの代わりと考えるのならば、
$usesで指定したのと同じ状態になるのが良い。

App::Importは単にクラスを読み込むだけ。
$this->Model にインスタンスを生成したりしない。

コードをざっと見ただけの意見だが、
コントローラの初期化処理で、$usersを見て値が入っていれば、
Controller::loadModelを呼び出してモデルを生成している。

loadModelはクラス生成以外にもなんかやってる。

だからloadModelを使ったほうがトラブルが少なくなりそうだと思った。
でも使ったことは無い。loadModelは外部から使うべきものじゃないかのうせいもある。
(普通は使うべきじゃないのなら _loadModelになっているはずだとは思うが)
160nobodyさん:2008/07/19(土) 18:47:19 ID:???
>>140
・・・ごめん。セッションキー埋め込みだった。
161nobodyさん:2008/07/19(土) 19:07:40 ID:jBy/EgFS
>>159
なるほど、よくわりました。
_loadModelてのは何ですか?
162nobodyさん:2008/07/19(土) 20:12:00 ID:???
メソッド名の先頭に _ をつけると、外部からの使用を推奨していないということ

loadModel()に、_が付いていない以上、普通に呼び出して良い(ことが窺い知れる)
http://api.cakephp.org/class_controller.html
163162:2008/07/19(土) 20:14:27 ID:???
といっても、これ、知らなかった。loadModel()
特定のactionでしか使わないModelなんかは、これで動的に呼んだ方が良さそうだね。
修正しよっと
164nobodyさん:2008/07/19(土) 23:06:40 ID:jBy/EgFS
バリデーションをビヘイビアを利用してyaml化にして
コントローラ内でattach関数を使って読む込むyamlファイルを動的に選択させることで
モデルを増やさずにバリデーションyamlファイルだけ増加させることで解決できた
165nobodyさん:2008/07/19(土) 23:10:53 ID:jBy/EgFS
これでバリデーションが必要な画面数に比例してyamlファイルが増加していく
166nobodyさん:2008/07/20(日) 07:59:18 ID:???
1.2からずいぶんと実践的になったよね。

フレームワークを使っている人が作っている感がでてる。
167nobodyさん:2008/07/23(水) 16:23:08 ID:???
ローカルで開発してるんだけど、1.2RC2は1.1よりも動作が遅いな。
168nobodyさん:2008/07/23(水) 20:47:49 ID:???
1.2になってsymfonyよりも遅くなったみたいだね。
しかもsymfonyの遅い原因だったPropelも今度のバージョンで速くなったし
なんだかなー。
169nobodyさん:2008/07/23(水) 21:18:09 ID:???
>>167 168
まじっすか。痛いっすね。
ただでさえ重いのに。。。
170nobodyさん:2008/07/23(水) 22:31:35 ID:bVhJ1Ly7
どんだけ遅いマシン使ってるんだよwwwwwwww
171nobodyさん:2008/07/23(水) 22:32:47 ID:pE/1LCdw
かといって、今後のメンテを考えると、1.1系で行くわけにもいくまい。
チューンナップが進むのを期待するだな。
172nobodyさん:2008/07/23(水) 22:39:51 ID:???
いや、マジで遅いよ。
モッサリという感じ。
1.1はサクサクだったのに残念。
173nobodyさん:2008/07/24(木) 01:13:17 ID:v8PYU5tT
キャッシュ利かせればモッサリとかねーと思うんだが
デバッグモード解除してもモッサリするようなら
SQLがらみ、bindmodelで上手にやれば問題なし
174nobodyさん:2008/07/24(木) 02:22:41 ID:???
そういえばデバッグモードが重いって話じゃなくて?
175nobodyさん:2008/07/24(木) 13:44:45 ID:???
この流れは、そろそろAkelos考えてみっかになるんだろうな・・・
176nobodyさん:2008/07/24(木) 13:56:02 ID:YLl3rq+t
177nobodyさん:2008/07/24(木) 18:43:29 ID:???
デバッグモードが遅いってだけの話じゃね?

1.2のbetaの時にくらべ、デバッグ情報の量が
かなり増えているから。
178nobodyさん:2008/07/24(木) 19:04:07 ID:???
いくらCakeに不満があっても、Cakeしか使えない・・・

Cakeが初めてのフレームワークでも、すんなり移れるフレームワークってないですか??
symfonyとかサッパリ;;
179nobodyさん:2008/07/24(木) 19:13:11 ID:???
つ ちいたん
180nobodyさん:2008/07/24(木) 19:43:19 ID:???
>>137-142らへんの話に便乗するけど、
URLにセッションIDを埋める場合って
session.php内のuse_trans_sidを1にしないと使えないの?

PCサイトとプロジェクトが共通だから、なるべく共通的なところは
いじらずにやりたいと思うのだけど。
181178:2008/07/24(木) 20:16:32 ID:???
>>179
さすがにライトすぎるというか;
使ってもみないで言うのもなんですが・・・

CIとかも流行ってきてますね。ちょっと気になる。。
182nobodyさん:2008/07/24(木) 21:26:03 ID:???
>>181
そんなスレ違いなあなたにはここをオススメっ

【PHP】フレームワークについて語るスレ10【総合】
http://pc11.2ch.net/test/read.cgi/php/1202521438/
183nobodyさん:2008/07/24(木) 23:50:55 ID:???
1.2は何回かリロードすると謎のwaitが発生する
184nobodyさん:2008/07/25(金) 18:19:46 ID:???
単にキャッシュが有効な期間は速くて、有効期限が切れたら
読み直し(=WAIT)が発生しているだけだろ?
謎でもなんでもない。
185nobodyさん:2008/07/26(土) 16:44:09 ID:???
back from vacation time to start working towards cakephp RC3

オイオイ、いつまでRCだすんだよ;
186nobodyさん:2008/07/27(日) 10:13:15 ID:???
RC3 => stable となることを願うばかりだな
187nobodyさん:2008/07/27(日) 21:27:08 ID:???
う〜ん。1.2のcakeコマンドが分からん。
$ ./cake bake all
で、全部のテーブルの基本的な画面を一気に作ってくれんの?
順番に数字を指定するのが面倒・・・
MCVを対話式で一つ一つ作るよりはマシになってるけど。
テーブルの数が多いと、大変。しかも、いちいちtestのを
作るか?とか聞かないで欲しい。
188nobodyさん:2008/07/29(火) 02:42:26 ID:ab6DF8xC
CakePHPの案件たくさんありますので
長くお付き合いできる方募集します。

https://hp.submit.ne.jp/i/13283/
189nobodyさん:2008/07/29(火) 09:13:12 ID:???
>>188
>最も重要視するポイント クオリティ
VIPクオリティでもいいですか?
190nobodyさん:2008/07/29(火) 19:27:35 ID:???
CakePHPのサイトに繋がらないのは俺だけ?
www.cakephp.orgもbook.cakephp.orgもダメだ…orz
191nobodyさん:2008/07/29(火) 20:10:31 ID:2mZftY9A
きみだけだ
192nobodyさん:2008/07/29(火) 20:24:56 ID:???
繋がったyo
193nobodyさん:2008/07/30(水) 19:42:29 ID:g+nhVb89
この記事おもしろくね?
Database design and CakePHP
http://bakery.cakephp.org/articles/view/database-design-and-cakephp
194nobodyさん:2008/07/30(水) 21:17:11 ID:???
どこの部分が?
195nobodyさん:2008/07/30(水) 23:23:13 ID:???
「投稿(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を二回に分けて直発行でやってるんですが、もうちょいマシな方法はないものかと
196nobodyさん:2008/07/31(木) 13:23:35 ID:???
vendors/commons.php内に共通関数を書いているんですが、
commons.php内の関数から同じcommons.php内の関数を呼ぶにはどのように記述すればいいのでしょうか?
$this->関数名だと
Using $this when not in object context とエラーが出てしまうので・・・。
197nobodyさん:2008/07/31(木) 15:17:33 ID:???
>>196
クラスにしてないなら$this->はいらないでしょ。普通になんも付けずに呼べばいいだけだけど。
198196:2008/07/31(木) 15:54:35 ID:???
>>197レスありがごとうございます。
自己解決しました。
Commons::関数名で呼び出すことができました。
(なにもつけなかった場合はundefined functionが出ました)
199nobodyさん:2008/08/01(金) 00:59:56 ID:CpiiU14k
ん? >>196 >>198 に追加で質問なんだけど、Commonsクラスをcommons.phpに記述している、
って認識でOK?
200196:2008/08/01(金) 11:40:22 ID:???
>>199
OKです。
Commonsクラスの中に書いた2つの関数を、片方から片方を呼ぶ
という感じです。
201nobodyさん:2008/08/01(金) 16:36:12 ID:???
テーブル名やカラム名に日本語使うとうまく動かんとこがあるね
202nobodyさん:2008/08/01(金) 17:12:36 ID:???
そもそも、そんな発想がなかった
203nobodyさん:2008/08/02(土) 11:01:20 ID:???
テーブル名、カラム名に日本語使うと・・・

foreach ($部署['社員'] as $社員) {
echo $社員['氏名'];
echo $社員['性別']['性別'];
...
}

こんな感じになるの??
204nobodyさん:2008/08/02(土) 11:52:56 ID:???
社員s_controller.php
社員.php
http://example.com/社員/view/1
とか?
205nobodyさん:2008/08/02(土) 12:07:43 ID:aQY+T7Eo
↑どこまでがマジ話なんだ
206nobodyさん:2008/08/02(土) 14:11:43 ID:???
普通に笑ってしまった!
207nobodyさん:2008/08/02(土) 22:07:43 ID:???
>>203,204
そういうのはuseTable使ってアルファベットだけにしてる。
作ってたら途中まで問題なかったんだけど、
SQLを""でクォートするところでちゃんとできずにSQLエラー。
正規表現がうまくいってないとこまで分かった。

208nobodyさん:2008/08/03(日) 03:51:55 ID:???
2バイト圏じゃない人が作ってるんだから、かなり修正が必要そうだな
209nobodyさん:2008/08/03(日) 10:57:48 ID:???
1バイト圏に移行することにより解決しました
210nobodyさん:2008/08/04(月) 11:03:43 ID:???
1.2に対応した書籍って出てる?
211nobodyさん:2008/08/04(月) 11:23:09 ID:???
>>210
時間的にムリw
212nobodyさん:2008/08/04(月) 11:25:58 ID:???
CakePHP ポケットリファレンスは
1.1/1.2に対応してるようなことが書いてあったけど、
どこまで対応してるのかね?
213nobodyさん:2008/08/04(月) 13:04:46 ID:???
RCで結構変わったっぽいからねぇ
214nobodyさん:2008/08/04(月) 15:39:24 ID:???
>>210-213
現1.1ユーザーにとっては、1.2対応の基本は押さえられる
RC前なので、betaからRCになって変わったところとかは未対応。その辺把握していないと辛いかも。
ex Modelのconditions

1.2betaすら使ったことがない人は、買って損はない、と思う。
215nobodyさん:2008/08/04(月) 15:42:55 ID:???
1.2のstableが出て、改訂版が出れば買うかなぁ
216nobodyさん:2008/08/05(火) 12:11:46 ID:???
そういや今月末にまたcake本でるよね。
CakePHP徹底入門だったか。
217nobodyさん:2008/08/05(火) 13:01:29 ID:???
もう入門本イラネ
218nobodyさん:2008/08/05(火) 14:55:44 ID:???
>>216
まじか!
とりあえず買っておこうかな。
cakephp 全部持ってるけど一番役に立つのはリファレンスかな。
219nobodyさん:2008/08/05(火) 16:49:14 ID:???
CakePHP徹底入門 (大型本)

Amazonより
> CakePHPの最新バージョンである1.2をメインとした初の解説書

ほんとうかよ?
beta -> RC でずいぶんと変わったぞ?
時期的にあやしいんだよなぁ。
220nobodyさん:2008/08/05(火) 21:22:57 ID:???
もうすぐRC3でるしねぇ・・・
Cakeって本と相性悪いねぇ。
221nobodyさん:2008/08/06(水) 00:46:37 ID:???
開発をコンパクトにやってるのか、方針転換が早いからね
今Cake本出すならstableまで待って原稿上げる英断をして欲しい
222nobodyさん:2008/08/06(水) 02:09:25 ID:???
これから着手する案件、1.1でやる。
仕事なら普通だよな?
223nobodyさん:2008/08/06(水) 04:49:56 ID:c9uoLYnS
仕事なら普通に1.2だろ
php5が出てるのにphp3でやるといってるのと同じだぞ
224nobodyさん:2008/08/06(水) 04:52:09 ID:c9uoLYnS
もうひとつ付け足すと1.2は安定してるし
1.1と1.2の機能面での差は、かなりでかい
225nobodyさん:2008/08/06(水) 10:41:07 ID:???
>>220
もう一年近く前になるかな?
CakePHPの本が何一つ出ていなかった頃。
海外の書籍でCakePHPがでると聞いて予約した。

いまだに出てないw 当然キャンセルしたw
226nobodyさん:2008/08/06(水) 10:46:43 ID:???
>>224
機能面もそうだし、1.1と1.2じゃ仕様の変更が多いよな。
一番の基本である、findXXX系まで変わってるし。

1.1と1.2じゃなくて、1.1と2.0ぐらいのバージョンの差があるよ。
たしかに、RCは正式版じゃなくリスクもあるけど、流石にもう大丈夫だと思うな。

ただ作っているうちにstableでて入れ替えることになるだろうから、
UnitTestはちゃんとしとけ。でないと再テストが苦痛になる。

仕事だから当然だ。
227nobodyさん:2008/08/06(水) 11:17:06 ID:???
1.1は死んだって書いてあるね。1.1はもう開発しないし
これから新規開発するには1.2を選べってさ。
http://cakebaker.42dh.com/2008/07/30/rip-cakephp-11/
228nobodyさん:2008/08/06(水) 12:25:03 ID:???
googleボットがデータを消してゆく
bakeで簡単に焼いたものをWeb上においておくと、グーグルボットが
deleteメソッドを踏んで、データを消してゆく、という話です。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1323&forum=3

ワロタw
俺は以前CakePHPとは関係ない話で似たような話をどこかでみたので
それですぐにこうなることに気づいていたが恐怖だろうなぁw

というかPostで制限意味ねーw Postに対応したbotがあったらどうすんだよ。
お問い合わせフォームにまでスパム投稿してくる時代に。
229nobodyさん:2008/08/06(水) 13:16:14 ID:???
>>228
クソワロタwww
230nobodyさん:2008/08/06(水) 13:51:20 ID:???
>>228
おお。bakeで作って認証かけてないやつあるわ(笑)
googleに発見されたらアウトだ。
さて。手っ取り早く対応するには、どうしようかな。。
231nobodyさん:2008/08/06(水) 13:52:33 ID:???
>>230
つ「BASIC認証」
232nobodyさん:2008/08/06(水) 13:59:40 ID:???
>>231
認証かけられないんだよね。諸事情で。
暫定的に、robots.txtで逃げたけど、どうしよう。。
233nobodyさん:2008/08/06(水) 14:38:16 ID:???
そりゃあ、単純にdeleteメソッドを置いておけば踏まれるだろ
234nobodyさん:2008/08/06(水) 17:06:11 ID:???
>>228の「似たような話」について

おっ。見つけられた。gigazineだったか。

Googleにサイトを全消去されたかわいそうなサイト
http://gigazine.net/index.php?/news/comments/20060331_google/

正確には、Googleがページのクロールに使用する「Googlebot」によって
CMS(コンテンツマネジメントシステム)のデータが全部消えてしまったというお話。

このCMSは従業員が各自で情報を入力していくという、まぁ一般的な方式で、
最終的なテストも終えて、インターネット経由でアクセスできるようになったわけです。

が、わずか2,3日後に悲劇発生。全ページが消えてしまい、
「内容を入力してね♪」
というような初期ページのみになってしまったのです
235nobodyさん:2008/08/06(水) 17:12:05 ID:???
今時誰でもデータ全消去できるってどんなサービスなの?
236nobodyさん:2008/08/06(水) 17:14:45 ID:???
>>232
世の中には、robots.txtを守らないボットがあるから
気をつけよう。

スパムメール送信の為のアドレスを集めるボットとか。
237nobodyさん:2008/08/06(水) 17:34:27 ID:???
>>235
こんな感じじゃないかなぁと思う。

1.クッキー対応していなくてもログインできるようにしたために
URLにセッションIDが追加されてしまっていた。

2.TinyMCEのようなブラウザで動くHTMLエディタを実装していた。
これにより、コピペをするとセッションIDが付加されたAタグまでコピペできる。

3.これが公開ページに置かれ、Googleが発見した。
つまりセッションハイジャック状態

4.セッションIDを含んだアドレスをgooglebotが発見、次々に
セッションIDを含んだリンクをたどる。

5.その中にdeleteリンクがあってgooglebotがそれをクリック。


ログインの仕組みを作るにはCookieを使うのが常識だけど、
携帯対応とかでCookieを使わずにアクセスできるようにしちゃうと大変だね。

URLにセッションIDが含まれているときは、携帯から
アクセスできないようにするという考えもあるけど、
そこに携帯サイトもクロールしてほしいとか言い出すと・・・
ワンタイムトークンでも使うのがいいのかな。
238nobodyさん:2008/08/06(水) 19:08:29 ID:???
>>237
詳細にTHX
239nobodyさん:2008/08/09(土) 19:03:49 ID:z9jw78px
bakeで作ること自体、素人のやることだと思ってるから
どうでもいいっちゃー、どうでもいい
240nobodyさん:2008/08/09(土) 19:36:35 ID:???
bake使ったことないからよく分からんwww
241nobodyさん:2008/08/11(月) 06:36:20 ID:???
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なら上手く行くんだが…
242nobodyさん:2008/08/12(火) 00:53:04 ID:???
>>241
ADODBを使ってるの?
SQL Server 2000自体には対応してないでしょ
243241:2008/08/12(火) 06:18:34 ID:???
>>242
d
ADODBじゃなくてmssqlで繋いでる。

無理にmssql使わなきゃ良いんだろうけど、
既存アプリをcakePHPに移行するとどうなるか
テストしてるから上手く行かないならDB変えないとなぁ…

244nobodyさん:2008/08/15(金) 08:44:04 ID:???
dreaming of a cakephp RC3

楽しみなような、おそろしいような・・・

はやくstableになってくれ〜
245nobodyさん:2008/08/22(金) 00:34:13 ID:MNsA+EAa
すごくバカな質問するんだけど、怒らないで聞いて欲しい。
CakePHPを勉強しているんだけど、命名規則にちょっと疑問が。
なんで、複数形じゃなきゃダメなの?複数形にしなかったらどうなるの?
246nobodyさん:2008/08/22(金) 01:11:39 ID:???
しなくても出来るはず。
した方が楽に自動設定できるだけ。
247nobodyさん:2008/08/22(金) 02:41:14 ID:???
単数と複数の区別は重要。
それをsつけるだけであらわせるんだから便利じゃん。
しなかったら気持ち悪いと思うんだけどな。
248nobodyさん:2008/08/22(金) 06:39:31 ID:???
以前のバージョンとき
indexs じゃだめだったときあったな。

indexies ってやらんと。

複数形って規則性がバラバラだから難しい。
グレーの色も gray でも glay でもどっちでもいいんでしょ?
249nobodyさん:2008/08/22(金) 09:25:24 ID:???
複数形一発検索とかのサービスはないのかな?
英語の勉強しなくちゃな…
250nobodyさん:2008/08/22(金) 12:33:06 ID:???
内部に、複数形⇔単数形の変換関数か何か入ってるんじゃないの?
RoRは入ってるとか聞いたけど
251nobodyさん:2008/08/22(金) 14:45:43 ID:???
coreに入ってるinflector使えばでできるんじゃないの?
252nobodyさん:2008/08/22(金) 14:47:56 ID:???
253nobodyさん:2008/08/22(金) 15:00:49 ID:???
>>252
いい事聞いた
254nobodyさん:2008/08/22(金) 16:24:43 ID:???
index => indices
255nobodyさん:2008/08/22(金) 21:54:49 ID:???
俺は英語よりも日本語のほうが表現力の豊かさの点で好きなんだが
複数形という概念は、すごいと思ったな。
大昔に作られた英語が、ここまでプログラミングにマッチするとは。

もし複数形がなければ、変数名に悩むことが多かっただろう。

でも、日本語は、単語と単語をくっつけて合成語を簡単に作れるから
やっぱり日本語が便利だな。「前月商品金額合計」みたいな。
英語だったら長い。

あと、音を表すだけのひらがな・カタカナ。
外来語を簡単に日本語に変換できてしまうカタカナ。

同じ言葉でも、漢字で書けば男っぽく、ひらがなで書けば女っぽく、カタカナで書けば外国っぽくなる面白さ。
あぁ。日本語ってすばらしい。
256nobodyさん:2008/08/23(土) 00:10:11 ID:???
和んだw
257nobodyさん:2008/08/23(土) 02:58:57 ID:???
英語的に正しいかとか気にしてないなぁ。
LastMonthItemPriceSummary
とかさぁ。
258nobodyさん:2008/08/23(土) 09:13:23 ID:???
ワロタw
259nobodyさん:2008/08/23(土) 11:36:45 ID:???
SexAndTheCityHelper
260249:2008/08/23(土) 15:26:42 ID:???
>>252
横着な要求を聞き入れて九打差り、官舎孟子安芸鱒
261nobodyさん:2008/08/23(土) 17:49:04 ID:???
>>250
入ってない単語はいちいち登録してやらないといけないんだよな。
もしくは機能を無効にするか。
結局余計な仕事を増やす設計になってる滑稽さ
262nobodyさん:2008/08/23(土) 21:42:23 ID:???
1行定義する労力と、単複区別不能なコードとどっちがいいか?
263nobodyさん:2008/08/24(日) 13:54:17 ID:OI90xc3U
複数形とかなんでそんな仕様にしたんだろう?
264sage:2008/08/24(日) 17:24:57 ID:KEdveE+J
すみません、アホな質問かもしれないんですが。

今まで1.1の環境でPEAR::Pagerを使うためにvendor()で読み込んでたんですが、
1.2に入れ替えたためDeprecatedだというWarningが出ます。で、1.2からは
http://book.cakephp.org/ja/view/538/vendor
App::importを使うようにと書かれているんですが、このApp::importって
どこに書けばいいんでしょう?posts_controller.phpのクラス?色んな
ところに書いてみたんですが、全部だめー!て怒られました。
Cakeの構造自体理解してなくてすみません。どこに書けばいいんでしょうか?
265264:2008/08/24(日) 17:26:21 ID:???
すみません、sage間違った・・・
266nobodyさん:2008/08/24(日) 22:43:46 ID:???
>>264
コントローラーでもどこでもいいと思うけど。
だめー!って書いてあるエラーの内容見てみれば?
267264:2008/08/25(月) 00:01:57 ID:???
>>266
なんか色々いじってる間にHTMLヘルパーのエラーが出てしまって
再現できません><すみません!また書きます!
268264:2008/08/25(月) 00:07:54 ID:???
出ました。えーとチュートリアルで言うとposts_controller.phpの中の
class PostsController extends AppController{
App:import('Component', 'Pager');
...
}
と書いてみたところ
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
と怒られます。何か根本的に勘違いしているような気がするのですが、
どこがそうなのか・・・
269nobodyさん:2008/08/25(月) 00:16:56 ID:???
vendor(パス) → App::import(適当な名前, arary('file'=>パス.php);
こんな感じ
270264:2008/08/25(月) 00:33:04 ID:???
>>269
App::import('Vendor', array('file' => 'Pager.php');
としてみましたが、エラーメッセージ変わらずです。
vendorsディレクトリの中はPager(ディレクトリ)、Pager.php、
include_path_vendors.php(PEARのディレクトリへパスを通すため)
が入っています。うーむ。
271nobodyさん:2008/08/25(月) 02:22:25 ID:???
App::import('Vendor', 適当な名前、array('file' => 'Pager.php');

だったか?
272nobodyさん:2008/08/25(月) 03:25:46 ID:???
>>264
depricatedなら1.2のページャとimportしてるライブラリの関数名が被ってるんじゃない?

というかパースエラーさらしてる時点で初心者とみた。
273nobodyさん:2008/08/25(月) 11:53:43 ID:???
class PostsController extends AppController{
App:import('Component', 'Pager');
...
}

じゃあ動かないよ

class PostsController extends AppController{

function goodluck()
{
App:import('Component', 'Pager');
}

...
}

じゃない?
274nobodyさん:2008/08/25(月) 17:33:57 ID:???
Zendと違ってCakeは直接Cakeの中に色々入れていくタイプなのかな?
Zendの場合は必要なディレクトリ構成さえあれば外部から呼んでくれるが
275nobodyさん:2008/08/25(月) 17:58:11 ID:???
そうそう、全部自分で完結させるタイプ、というか。
そのままディレクトリをサーバーに置けば使えるっていう。
私は結構気に入ってたりします。
276nobodyさん:2008/08/25(月) 22:26:29 ID:???
FW内で自己完結できるのはいいよな
環境移すのも楽だし
277nobodyさん:2008/08/26(火) 17:35:31 ID:???
>>276
VCEEとかだと.NETのフレームワークは外部から読み込むよな
そんな感じでもう慣れちゃったから内部完結みたいなのがまだ慣れない
278nobodyさん:2008/08/27(水) 11:21:42 ID:wzctFyRR
Webに公開されないプログラムでCakePHPを使いたいんですが、
CakePHPはhtaccessやルーティングでプログラムを結び付けてるんで、やっぱり使いにくいんでしょうか?

CakePHPのデータベース周りが便利すぎて、どうしても使いたくなっちゃうんですよね。。
279nobodyさん:2008/08/27(水) 12:47:13 ID:tVkJ8wOQ
社内向けのアプリ?
別にCakeでもいいんじゃね?
280nobodyさん:2008/08/27(水) 13:57:59 ID:???
>>278
多分、Apache(Webサーバ)を通さず実行する
スクリプトとしてphp+cakeでやりたいってことじゃね?
281278:2008/08/27(水) 14:30:57 ID:wzctFyRR
>>280
その通りです。
282nobodyさん:2008/08/27(水) 15:04:50 ID:???
ウェブサーバーが無いと
スクリプト動くわけ無いやんw

CakePHP以前にPHPが動かない。
PHPだけじゃなく、CGI、Perl、Ruby、何も動かんw
283nobodyさん:2008/08/27(水) 16:26:42 ID:???
ひどいつりだ
284nobodyさん:2008/08/27(水) 16:48:18 ID:gXMXTzpH
localhostだけで動かすか、IP規制すればいいだけのことじゃん
285nobodyさん:2008/08/27(水) 16:56:08 ID:???
>>294
それでもWebサーバは必要。
なんか上げ足の取り合いになってる感じだが
286nobodyさん:2008/08/27(水) 18:30:20 ID:???
>>294
その発想は無かった!
287nobodyさん:2008/08/27(水) 19:24:58 ID:???
>>294
天才現る
288nobodyさん:2008/08/27(水) 20:17:20 ID:???
CLIのphpで動くようにコード書けば良いだけだろ。JK
289nobodyさん:2008/08/28(木) 12:13:39 ID:???
今、cakephpでブログを作って運営してるんだけどタグ機能をつけたいと思うのね。

でも、一度完成したプログラムをいじるのがなんかすごい抵抗があるんだけど。

プロの仕事だと完成後にあれつけろこれつけろってのもよくあること?
290nobodyさん:2008/08/28(木) 12:42:08 ID:???
そのCakeで作ったブログとやらを見てみたい。ぜひ・・・・
291nobodyさん:2008/08/28(木) 13:54:59 ID:???
>>289
「(タダで)こういう機能を追加して欲しい」
ってのはしょっちゅうだwww
292nobodyさん:2008/08/28(木) 14:23:15 ID:???
ありがとうございます。やっぱそうなんですか。
作ったの改造するより、最初っから全部作った方が楽しいですよね。

家のリフォーム業者も同じことを思うんでしょうかね。
293nobodyさん:2008/08/28(木) 14:28:29 ID:???
プロ・趣味問わず今のWebアプリはそういう増改築は不可避でしょ?
タグ付きで作り直してもまた別の機能付けたくなったらまた作り直し?
今の状態でとりあえずタグ機能付けて時間あったらソース修繕(何て言うんだっけ)じゃないの
294nobodyさん:2008/08/28(木) 15:17:32 ID:???
>>293
たしかにそうですね。一個一個作り直してたらキリないですね。
とりあえずつけることを考えてやってみます。
勉強になります。ありがとうございます。
295nobodyさん:2008/08/28(木) 18:59:25 ID:???
あとから修正すると、バグ混入で今まで動いていたところが動かなくなるよ。

そうならないようにユニットテストを書いておくわけだ。

書いておいたテストを実行すればテストできるわけだから、
修正するたびに、毎回全部をテストをするわけだ。
296nobodyさん:2008/08/28(木) 19:04:09 ID:???
CakePHP徹底入門って初心者向きの内容?
やっぱり気になる・・・・
297nobodyさん:2008/08/29(金) 09:41:22 ID:???
>>295
そうですね。たしかにバグりますよね。
あれ・・・ここいじってないんだけど、どうして動かないの!?って。
だからあまり触りたくなかったんですが。

ユニットテストのメリットってそこにあるわけですね。
298nobodyさん:2008/08/29(金) 12:25:04 ID:???
>>289
ない仕事のほうがめずらしい
299nobodyさん:2008/08/31(日) 17:43:38 ID:???
>>296
そろそろレビューが欲しいところ。
300nobodyさん:2008/09/01(月) 01:20:41 ID:???
>>299
CakePHPと名の付く本は全部買ってる拙者、ぱらぱらっと読んだ感じではイマイチかと。
他の本との差別化をしようとしてか、bakeに多くのページを割いてる。
インストール + bake で半分とか。

拙者のお薦めは PHPフレームワーク完全マスター + CakePHPポケットリファレンス。
前者で入門して、あとは後者をリファレンスに。(後者も一度全部読むと良いと思う。)
301nobodyさん:2008/09/01(月) 01:31:03 ID:???
>>300
レビューサンクス。
やっぱりbakeメインかぁ・・・
bake使わないしなぁ・・・

入門はもういいから、
もっとハック的なのをメインにしたのが欲しいところ・・・
bakery読めないし・・・・;;
302nobodyさん:2008/09/01(月) 02:02:49 ID:???
CakePHPポケットリファレンス は立ち読みしたが悪くない
1.2のstableでて、この本が対応したら買いたい

あと買った中では CakePHPガイドブック は初中級者向きとして悪くなかった。
303nobodyさん:2008/09/02(火) 09:32:07 ID:???
Cake初心者の俺。
1ヶ月前にCakePHPポケットリファレンスを買ったが、
大活躍している。
ただ、それだけではCakeについて全く理解できないので、
友達からCakePHPガイドブックを借りた。

自分としては、『リファレンス+ガイドブック』の組み合わせで
全てがまかなわれると思う。

他には『Fast CakePHP』を読んだけど、あれは簡単すぎた…。
304nobodyさん:2008/09/02(火) 11:01:34 ID:???
bakeは釣り
305nobodyさん:2008/09/02(火) 15:54:42 ID:DwwkROZ8
マックのインターフェイスービルダーみたいなのでインターフェイス作ってcakephp出来たらいいのに。

306nobodyさん:2008/09/02(火) 20:40:37 ID:???
HTMLエディタ使え
307nobodyさん:2008/09/03(水) 06:45:31 ID:???
RC3まだかな〜
というかStableまだかな〜・・・

作業大変そうだから無理はいわないが・・・
308nobodyさん:2008/09/03(水) 17:24:21 ID:???
ここ1年でCakePHP用の俺俺関数がたくさん出来た
殺人的な工数もなんとかこなせてる。俺のスキルがUPしたんじゃなくて
悪魔でCakePHP用の俺俺関数のおかげ
2、3年はこれで喰っていけそうだ。
短納期でいけるようになったのは俺だけじゃないと思うから
もしかするとWEBのシステム単価は低くなると思うよ
309nobodyさん:2008/09/03(水) 20:22:55 ID:???
以上悪魔さんのレポートでした
310nobodyさん:2008/09/03(水) 22:01:16 ID:???
>>309のおかげで>>308読み直したら結構ワラタw
311nobodyさん:2008/09/04(木) 00:39:08 ID:???
2ちゃんのようなスレッド掲示板ならCakePHPで1週間で作れるやつは多くなってる気がする
だから2ちゃんのようなスレッド掲示板の見積もりをCakePHP使ってる個人に出すと
15万円〜20万円くらいが相場になってきてるよ
312nobodyさん:2008/09/04(木) 00:43:35 ID:???
CakePHPで儲けるなら
安い単価でどれだけ沢山のサイトを作るかだよな。
結果としてWEB制作費用の相場は下がるけど
業界がそういう流れになってるから仕方ないよね
313nobodyさん:2008/09/04(木) 21:17:37 ID:???
もしくはめっちゃくちゃ安く作って、保守を高くする。
これが一番儲かりそう。
ホームページ無料で作ってサーバー代をすげー値段とるとこも多いからね。
314nobodyさん:2008/09/05(金) 09:51:29 ID:???
コーディングやシステム設計してるとき
なんで俺て頭いいのと思うことが最近多い。
過去の経験も大事だけど、経験にはない
ひらめきみたいなものも大事だと思う
経験+ひらめきがプラスアルファされることで良いものが早く出きる
315nobodyさん:2008/09/06(土) 01:38:01 ID:???
近いうちに間違いなく
何でこんな頭悪いことやってたんだ俺
設計からやり直してー
ってなる。

ならなかったら頭が停滞しているということ。
316nobodyさん:2008/09/06(土) 15:10:34 ID:???
314と315の繰り返しだよね。
プログラムって。
317nobodyさん:2008/09/06(土) 22:09:53 ID:???
日によってプログラミングが冴えるときと、そうじゃないときがある
冴えるときは別人のように俺は天才と思うときがあるけど
50%の割合でしか出せることが出来ない
318nobodyさん:2008/09/06(土) 22:11:37 ID:???
納期jに追われてるときに集中力でるから
天才的なコーディングになることが多い
319nobodyさん:2008/09/06(土) 22:14:47 ID:???
自信過剰な性格じゃないけど、プログラムに限っては
天才と思うことが多々ある。
320nobodyさん:2008/09/07(日) 04:13:27 ID:???
>>319
いやそれを自信過剰な性格というだろ。
321nobodyさん:2008/09/07(日) 15:29:05 ID:???
朝が一番頭が冴えると思う。
朝作れなかったら、その日はもうだめだ。
322nobodyさん:2008/09/08(月) 07:47:54 ID:???
今日は調子悪いので2ch見て過ごす。
まあ、週に3,4日はそんな感じ。
323nobodyさん:2008/09/09(火) 15:11:13 ID:1fHefJEI
cakephp使う以前はsmartyでfetchしたhtml内容をfileにして保存していたのですが
cakephpの表示結果をhtml形式で別に保存する事は可能でしょうか。
324nobodyさん:2008/09/10(水) 23:58:34 ID:???
テンプレートでob_flashとかcache系の処理でなんと出来そうじゃない?
と適当に思い付いた事を言ってみる
325nobodyさん:2008/09/11(木) 00:25:09 ID:ldL7ucwZ
Smarty使えばいいがな。
326nobodyさん:2008/09/11(木) 00:42:10 ID:???
>>324
俺もキャッシュでいいんじゃないの・・・と思うので、同意。
327nobodyさん:2008/09/16(火) 12:22:26 ID:AZ36dHRD
バリデーションで任意入力のチェックをする場合に悩んでいます。
たとえば郵便番号は必須でないけど999-9999とかでチェックしたい場合
ruleで正規表現を使うと入力していない場合でもエラーが出てしまいます。
解決策はありますか?
328nobodyさん:2008/09/16(火) 13:48:28 ID:???
>>327
つallowEmpty
329nobodyさん:2008/09/16(火) 13:57:26 ID:AZ36dHRD
>>328
ありがとうございます!!ためしてみます。
330nobodyさん:2008/09/16(火) 14:11:56 ID:AZ36dHRD
>>328
'allowEmpty' => trueで出来ました。
331nobodyさん:2008/09/17(水) 04:28:53 ID:BI/ji3+I
formヘルパーがなんか使いにくく感じる。
意図しないDivやらFieldsetが吐かれ、
それを抑制するオプションが用意されていないものがあったり。
あっても引数にnullやfalseを並列しなきゃならない。
checkboxによる1フィールド複数選択が作りにくい気もする。

当方、checkboxやradioボタンは<ul>-<li>でマークアップするのが好きなんだけど、
ヘルパー使うとうまくいかなくてやむなく自前で
<input name="data[Model][field]"〜 />って書いてしまう。
私の書くviewはヘルパー使ってたりなかったりでお行儀悪く感じてます。

皆さんformアイテムは全部ヘルパー使って書いてます?
332nobodyさん:2008/09/17(水) 15:03:58 ID:HoHA6PJP
フォームは今のところヘルパーで書いてます。
まだまだ小規模なのでこれからはまるかもしれんが・・

アプリで共通で使う配列の指定はどうしてますか?
app.phpに記載してbootstrap.phpでconfig('app')として取得できないです。
さらにglobalでしても何も取ってこれないのは何故??
333nobodyさん:2008/09/17(水) 15:25:41 ID:???
2 tickets closer to RC3

いよいよ・・・か!?
334Noone:2008/09/17(水) 16:58:38 ID:???
335nobodyさん:2008/09/17(水) 19:03:19 ID:???
>>334
怖くて踏めない・・・なにこれ??
336nobodyさん:2008/09/18(木) 08:01:41 ID:???
RC3かよ。いい加減に早く出してほしい。
待たせていることをきちんと考えて、最優先で仕上げてもらわないと困る。
337nobodyさん:2008/09/18(木) 20:21:19 ID:???
俺は困らん
338nobodyさん:2008/09/18(木) 20:46:54 ID:???
RC2で満足してる俺がいる
339nobodyさん:2008/09/22(月) 11:15:53 ID:???
複数チェックできるようにしたいのですが、配列から複数のチェックボックスを作成するにはどのようにしていますか?
Formヘルパーで実現できるかどうか教えてください。
340nobodyさん:2008/09/22(月) 12:12:40 ID:???
>>339
> 複数チェックできるようにしたいのですが、配列から複数のチェックボックスを作成するにはどのようにしていますか?
> Formヘルパーで実現できるかどうか教えてください。
ちなみに1.2 RC2です。
341nobodyさん:2008/09/22(月) 23:42:37 ID:???
マルチポスト乙w
342nobodyさん:2008/09/23(火) 02:22:40 ID:???
ここみてる人ならたいていフォーラム見てるでしょw
343nobodyさん:2008/09/23(火) 07:29:42 ID:???
フォームヘルパーつかわないな。俺。
使うのは ajax ヘルパーのみかも。
344nobodyさん:2008/09/23(火) 16:40:49 ID:???
>>343
ajax ヘルパーってpagination以外にどんな便利な使い方があるの?
345nobodyさん:2008/09/23(火) 22:23:52 ID:???
RTFM
346nobodyさん:2008/09/24(水) 00:38:38 ID:???
>>345
いまいち読んでも使い方が分かりません
http://www.cakephp.jp/doc/helpers.html#id4810304

どこかに実例があれば・・
347nobodyさん:2008/09/24(水) 09:24:16 ID:J5k/glN9
例えば、A、B、Cとテーブルがあって、AとBが1対多、AとCも1対多の関係です。

Aのコントローラーのindex()でBに関連付けられているA、Cに関連付けられてるA
をそれぞれ分けて抽出するには、どのようなモデルの関係と条件を作ればいいのでしょうか?

paginate()を使っているのですが、->recursiveを変えたりとかしても、
paginate()で実行されるconditionが反映されるSQLでは
Bのテーブルが含まれないので、どうしたらいいものでしょうか?
348nobodyさん:2008/09/24(水) 11:52:29 ID:bvaeEkej
初歩的な質問で申し訳ないのですがぐぐってもさっぱりなので質問させてください。
サーバにcakePHPをアップロードしていろいろやってて、同じディレクトリーのほかのファイルにアクセスしようとしたら出来ませんでした。なんでですか?

ディレクトリー構造はこうです。

public_html ┬ cakePHP
      ├ testphp  ←ここの中にアクセスできません
      └ eroPhoto ←ここの中にアクセスできません

ご教授お願いします
349nobodyさん:2008/09/24(水) 13:07:16 ID:???
>>347
よくわからないけど、Aのコントローラのindex()で
Bのデータ(A付属) と Cのデータ(A付属)を取り出したいってこと?

普通はAのコントローラーで、Aのデータを取り出す。
(ついでにBとCのデータも一緒についてくる)って形だと思うんだけど。

350nobodyさん:2008/09/24(水) 15:47:43 ID:???
これってインストール超カンタン?
351nobodyさん:2008/09/24(水) 15:51:42 ID:???
いろいろ調べてみたけど、
PHPのフレームワークは
cakephpで決まりだな。
352nobodyさん:2008/09/24(水) 16:59:48 ID:???
353nobodyさん:2008/09/24(水) 17:01:07 ID:???
>>344
リンクつけたり、フォームをajaxにしたり。
すっげー便利じゃない?

javascriptでAjax書くよりスッキリしていい。
俺気が短いからできるだけ早く動くようにできるだけAJAXで書いてるんです^^
354348:2008/09/24(水) 23:43:42 ID:bvaeEkej
>>352
うわ〜すげー久しぶりに2ちゃんで感謝しちゃう;;
教授!!ありです!!!
355nobodyさん:2008/09/25(木) 03:14:13 ID:FEQjxQnp
>>349
Aの外部キーを持つテーブルBとCがあって、1対多で、
Bに関連づく場合とCに関連づく場合でAの性質が異なるので、
分けて出力できるようにしたいです。

SQL的には
SELECT * FROM `A` WHERE id IN (SELECT DISTINCT A_id FROM B)
みたいな感じなのですが、やはり$usesでBのモデルも指定して、まず
SELECT DISTINCT A_id FROM B
の部分を実行して、その結果をconditionsに入れる感じしかないのでしょうか。





356nobodyさん:2008/09/25(木) 11:40:18 ID:???
>>351
詳しくまとめて教えてください。興味ある。
357nobodyさん:2008/09/25(木) 11:42:28 ID:???
>>356
グーグルトレンドのグラフ
358nobodyさん:2008/09/25(木) 13:49:24 ID:???
それはないわー
359nobodyさん:2008/09/25(木) 15:32:43 ID:ddZpNdwx
俺、cakePHP1.2 stable が出たら、田舎に帰って結婚するんだ
360nobodyさん:2008/09/26(金) 09:56:35 ID:???
へー
361nobodyさん:2008/09/26(金) 13:03:20 ID:???
質問です。

cakePHP1.2でSecurityコンポーネントのSecurity->requireAuthを使うと
input->hiddenのnameがすべて{_モデル名}になるのは仕様ですか?

data[_Hoge][id]

みたいに勝手にhiddenに(_)アンダースコアが付くようなんですが。
362nobodyさん:2008/09/27(土) 07:20:34 ID:???
インストール終わったんだけど
設定はどうすればいいの?
363nobodyさん:2008/09/27(土) 07:47:53 ID:???
>>362
お好きなように
364nobodyさん:2008/09/27(土) 08:41:41 ID:???
http://p4life.jp/cake/cake_app.html
このムービーを見ながら進めてるんだけど、
ムービーの55%くらいのところ、
http://localhost/bookmark/items
をブラウザのアドレス欄に入れて、
表示させるところでつまずいています。


CakePHP Rapid Development
Missing controller

You are seeing this error because controller ItemsController could not be found.

Notice: If you want to customize this error message, create app\views/errors/missing_controller.thtml.

Fatal: Create the class below in file : app\controllers\items_controller.php

<?php
class ItemsController extends AppController {
var $name = 'Items';
}
?>

となってしまいます。
365nobodyさん:2008/09/27(土) 11:00:39 ID:???
自己解決しました。
エラーの表示であってました。
よく見てなかった。
366nobodyさん:2008/09/27(土) 18:08:20 ID:???
cakephpかんたんに
いれられるレンタルサーバーおしえて。
367nobodyさん:2008/09/27(土) 18:11:40 ID:???
「cakephp対応」って書いてるところでないとだめ?

それとも、php+mysql対応って書いてるところであれば
どこでも入れられる?
368nobodyさん:2008/09/27(土) 21:28:46 ID:???
>>366
cakephpのインストールに必要なものを挙げていけば自然にわかるだろうがよ
369nobodyさん:2008/09/27(土) 23:30:54 ID:???
いいから教えてよ
370nobodyさん:2008/09/28(日) 00:56:57 ID:???
>>369
phpとmysqlだけでは駄目で、
他にxvfbとgs(Ghostscript)とcli-phpが必要。
phpが入っていればcli-phpも多分入っていると思うけど
xvfbとghostscriptは普通入ってないので、cake-php対応のところがベスト
371nobodyさん:2008/09/28(日) 14:10:13 ID:???
caekPHPで、一番安いレンタルサーバーはどこ?
372nobodyさん:2008/09/28(日) 16:42:27 ID:???
日本語でおk
373nobodyさん:2008/09/28(日) 17:16:23 ID:???
cakephpを使えるレンタルサーバーで
一番安いところはどこ?
374nobodyさん:2008/09/28(日) 17:20:25 ID:???
日本語でおk
375nobodyさん:2008/09/28(日) 17:53:44 ID:???
cakephpを使えるレンタルサーバーで
月額の料金が一番安いところはどこ?
376nobodyさん:2008/09/28(日) 19:34:27 ID:???
日本語でおk
377nobodyさん:2008/09/28(日) 19:47:50 ID:???
マジレスするとcore。まぁ使えるってだけだが。
378nobodyさん:2008/09/28(日) 19:49:31 ID:???
379nobodyさん:2008/09/28(日) 19:55:09 ID:???
cakePHPをXreaで利用する方法:
http://www.web2-labo.com/cakephpxrea.html
380nobodyさん:2008/09/28(日) 20:53:05 ID:???
381nobodyさん:2008/09/28(日) 20:53:37 ID:???
>>377
なるべく安い方がいいんだけど、
設定がなるべくかんたんなほうがいいな。

そういう観点だと、どこがおすすめ?
382nobodyさん:2008/09/28(日) 21:04:21 ID:???
>>381
ここ結構安いし良さそうだよ
ttp://www.xunit.jp/content/view/97/33/
383nobodyさん:2008/09/28(日) 21:30:14 ID:???
http://gihyo.jp/dev/serial/01/cakephp/0005

複数形は単純に「s」が足されるわけではなく,
英語として正しい複数形である必要があります。
たとえばdiaryはdiariesとなります。


----------------------------------------
↑って書いてあるけど、ただしい複数形って、
どうやって認識してるの?
384nobodyさん:2008/09/28(日) 21:42:49 ID:???
>>383
つ /libs/inflector.php
385nobodyさん:2008/09/28(日) 22:57:56 ID:???
>>381
環境さえそろってりゃ使う分には大した手間はかからんだろうよ。coreで十分。
シェルが使えればなお良いがそうなると月2000円以上のクラスか海外使うしかない。
386nobodyさん:2008/09/29(月) 05:17:18 ID:???
>環境さえそろってりゃ

↑これってどういう意味なのかな?
387nobodyさん:2008/09/29(月) 06:00:03 ID:???
そのままの意味じゃないの?
388nobodyさん:2008/09/29(月) 07:02:14 ID:???
じゃあその環境って具体的になんなの?
389nobodyさん:2008/09/29(月) 07:07:55 ID:???
普通に使える環境ならいいんじゃないの?
390nobodyさん:2008/09/29(月) 07:42:47 ID:???
バカは書き込むなよ
レンタルサーバーでcakeが使えるかどうかの話だよ
391nobodyさん:2008/09/29(月) 08:04:35 ID:???
>>390
>バカは書き込むなよ

自己矛盾起こすなよww
392nobodyさん:2008/09/29(月) 10:27:46 ID:???
BLOBってなに?
393nobodyさん:2008/09/29(月) 10:32:37 ID:???
http://p4life.jp/cake/cake_app.html
これみて、サンプルは作れたんだけど、
これって計算とかできないの?

カラム1に「3」を入力して、
カラム2に「4」を入力して、
合計を出すとか。
394nobodyさん:2008/09/29(月) 10:42:30 ID:???
>>393
それは15年くらい修行しないと無理だ。諦めろ。
395nobodyさん:2008/09/29(月) 10:48:40 ID:???
じゃあ15分くらいで実行できる、
なんかクエスト出してよ
396nobodyさん:2008/09/29(月) 10:56:16 ID:???
もしかして、フィールド1の値をPHPで取得して、
フィールド2の値をPHPで取得して、
それをPHPのコードで足して、
変数にいれて
出力して、
ってやるのかな?
397nobodyさん:2008/09/29(月) 10:58:29 ID:???
>>395
おお死んでしまうとは情けない。
勇者よ。
本屋へ行ってcakePHPの本を買うのだ。
398nobodyさん:2008/09/29(月) 11:02:28 ID:???
http://www.hideblog.net/nikkis/show/73
これでできるの?
399nobodyさん:2008/09/29(月) 14:08:58 ID:???
http://asagi.la.coocan.jp/diplomacy/
cakeでこれと同じの、作れる?
何時間で作れる?
400nobodyさん:2008/09/29(月) 14:17:24 ID:???
>>399
宣伝乙
401nobodyさん:2008/09/30(火) 06:11:34 ID:???
   ウッウー!       ウマウマー♪!
    Λ_Λ         Λ_Λ
   ./) ゚д゚)')       ('(゚д゚ (ヽ
(( /    / ))      ((ヽ    ) ))
  し―J             し―J
402nobodyさん:2008/10/02(木) 10:34:35 ID:???
で、RC3はいつなのかな?2tichet closerから1ヶ月くらい立ちそうだけど。

そもそもRC3で直るバグとかって大きいのあるのかな?
403nobodyさん:2008/10/02(木) 15:03:07 ID:???
cakephpやるときの専用IDEとかってあるの?
404nobodyさん:2008/10/02(木) 16:10:21 ID:???
405nobodyさん:2008/10/02(木) 16:24:33 ID:???
http://bakery.cakephp.org/articles/view/release-cakephp-rc3-the-rc-of-triumph

the bootstrap process is over 10x faster than RC2, and basic requests for static content are now about 5x faster overall.
早くなってるなら大歓迎。
406nobodyさん:2008/10/02(木) 16:47:25 ID:???
>>403
だれが作るんだそんなもんw
407nobodyさん:2008/10/02(木) 18:38:43 ID:???
RC3きたけど、毎日のようにnightlyいじってたので新鮮味が・・・w
あと、RC2のとき、リリース直後にすぐ修正版がでたことを忘れないように!
408nobodyさん:2008/10/02(木) 22:37:50 ID:???
開発途中の社内アプリをRC2からRC3に入れ替えたけど、うごかねー
model->saveが全部うごかねー
409nobodyさん:2008/10/03(金) 00:16:10 ID:???
model->saveでして保存する配列はモデル名が必須になった。
と適当に言ってみる。
410nobodyさん:2008/10/03(金) 07:26:48 ID:???
CakePHPブログチュートリアルで
10.1.8 Postビューの作成
がエラーでてできねーと思ったらチュートリアルが1.2用なのかよ。
1.1でやってて1時間くらい悩んじまったよ。
411nobodyさん:2008/10/03(金) 23:52:47 ID:???
>>408
まじ?大きな変更はないってどっかに書いてあったけど。
412408:2008/10/04(土) 07:01:33 ID:???
漏れの勘違いだったようだ。saveは動きます。
テストが動かなくなったけどね。simpletestうぜー
413nobodyさん:2008/10/05(日) 17:56:46 ID:???
simpletest が動かないなら、そのsimpletestを動かすテストケースを作らないといけない。。。
本末転倒とはこのことですね。
414nobodyさん:2008/10/05(日) 18:10:04 ID:???
cakeって、必ずmysqlと連動させないとだめなの?
シンプルなものとか、データーベースからめないで
作りたいときは、データーベースは連携させなくてもつくれるの?
415nobodyさん:2008/10/05(日) 18:20:00 ID:???
http://www.easywebdx.com/php/files/01_03_cal.php

これとおなじことcakeでやるにはどうしたらいいの?
416nobodyさん:2008/10/05(日) 18:27:10 ID:???
またおまえか
417nobodyさん:2008/10/05(日) 19:45:22 ID:???
>>415
業者に頼んで作ってもらう。
418nobodyさん:2008/10/05(日) 23:46:32 ID:???
cake使うときは、普通は smartyは使わないの?
419nobodyさん:2008/10/06(月) 03:34:41 ID:???
>>418
Smarty使う必要性は?
あの手のテンプレートエンジンって、既に過去の遺物だけど。。
420nobodyさん:2008/10/06(月) 07:23:58 ID:8+YJokg0
>>361
俺も知りたいわけだが
421nobodyさん:2008/10/06(月) 12:02:05 ID:???
テストについて、えろいひと教えて

app/test/case/model/hoge.test.php
---
class HogeTest extends Hoge {
var $cacheSources = false; var $name = 'HogeTest';
var $useDbConfig = 'test_suite';
}

class HogeTestCase extends CakeTestCase {
var $fixtures = array( 'app.hoge_test' );
---

app/test/fixture/hoge_testfixture.php
---
var import = array('table' => 'hoges');

一部省略しているけど、普通にテスト作って、test.phpを実行すると

「Database table hoges for model Hoge was not found.」

と怒られます。config/database.phpには$testでテスト用DB指定して、
実際にデータベースも作っているんだけど、このエラーのように
hogesテーブルっているの?hoges_testができているから、
これだけで良いんじゃないの?hogesとhoges_test2つ作ったら
エラーはなくなったけど、意味なくない?
422nobodyさん:2008/10/06(月) 19:58:02 ID:???
さてどこからツッコんだものか
423nobodyさん:2008/10/06(月) 20:46:28 ID:???
* ←ココ
424nobodyさん:2008/10/06(月) 22:28:04 ID:???
ツ・・ツマンネーョ・・・アァッ
425nobodyさん:2008/10/07(火) 13:12:18 ID:???
CakePHPカンファレンス 参加登録しますた
426nobodyさん:2008/10/07(火) 15:39:11 ID:???
忘れてたーと思って見に行ったら埋まってた。
30分で全部埋まってるw
427nobodyさん:2008/10/07(火) 19:05:05 ID:???
まだ半分追加枠があるさ。
428nobodyさん:2008/10/07(火) 21:15:15 ID:???
smartyとcakephpって排他使用なの?
429nobodyさん:2008/10/08(水) 04:18:11 ID:???
あー、もういんじゃねえの、stableで。
見過ごせないチケットあんの?
430nobodyさん:2008/10/08(水) 10:25:50 ID:???
データベース使わないで.datとかに保存するってことできる?
431nobodyさん:2008/10/09(木) 00:46:00 ID:???
>>430
CAKEでやる利点をあまり思いつかない
432nobodyさん:2008/10/09(木) 02:56:13 ID:???
会員系サイトつくってんだけど、そいつらのコミュニティ掲示板に画像アップしたいって
いいやがんのよ。で、普通にwebrootの下においたら、全員に丸見えだからさー
どっかに起きたいんだけど、php経由で認証判断してファイルを読み込む仕様なんだけど
こういう系のファイルってみんなはどこにおいている?

候補1)appの下にfilesとかdir作って放り込む
候補2)tmpの下におく
候補3)localeの下におく

候補1っすかねー
それか素直にDBにバイナリで持つか

433nobodyさん:2008/10/09(木) 03:22:41 ID:???
データーベースって画像も登録できるんだ?
434nobodyさん:2008/10/09(木) 09:15:03 ID:???
データベースを何だと思ってるんだw
435nobodyさん:2008/10/09(木) 10:32:15 ID:???
いやあ、、、
テキストだけを登録できるソフト、って
先入観があったから、、、、
436nobodyさん:2008/10/09(木) 13:01:09 ID:???
Cake始めようと思うんですけど、お勧めの書籍とかないですか?
437nobodyさん:2008/10/09(木) 17:22:55 ID:???
>>436
まずはマニュアルのチュートリアル
438nobodyさん:2008/10/09(木) 22:07:38 ID:z61RYR7M
質問です。
Cakephp1.2-RC3でformヘルパー使用してて、radioボタンのnameを[Model名][hoge]みたいにしたくて、

$radioName = 'Model名.hoge';

としたのですが、下記のようなエラーが出てしまいました。

ConnectionManager::getDataSource - Non-existent data source default

ちなみにDBは不使用です。

よかったら教えてもらえませんか…
439438:2008/10/09(木) 22:10:59 ID:z61RYR7M
<?php
$radioName = 'Model名.hoge';
$radioValue = array("1"=>'1');
?>
<?php echo $form->radio($radioName,$radioValue); ?>

こんな感じです
440nobodyさん:2008/10/09(木) 22:23:48 ID:???
>>436
CakePHPガイドブックってのが良かった。
あとはオンラインのマニュアルと、ポケットリファレンスが
あれば十分
441438:2008/10/09(木) 22:27:12 ID:z61RYR7M
すみません自己解決しました。
ご迷惑をおかけしました
442nobodyさん:2008/10/10(金) 15:13:54 ID:???
CakeってDB不使用にしてModel呼び出すとエラーになりませんか?
443nobodyさん:2008/10/10(金) 22:48:18 ID:/mk3YX6a
DBに画像保存できるやん
444nobodyさん:2008/10/10(金) 23:19:52 ID:???
>>442
$uses=false;
ってすれば別に怒られないが。
445nobodyさん:2008/10/11(土) 00:43:55 ID:???
ビュー不要のアクションって、どうやって書けばいいのかな。
function test() {
echo "hoge";
}
ってコントローラに書いたら、hogeは表示されるんだけど、test.ctpが無いと警告が出る。
1.2にて。
446nobodyさん:2008/10/11(土) 00:50:54 ID:???
>>445
ごめん自己解決。
function test() {
$this->autoRender = false;
echo "hoge";
}
でいけた。
447nobodyさん:2008/10/11(土) 01:24:02 ID:???
>>444
それってその時点でModel使うの諦めてませんか?
448nobodyさん:2008/10/11(土) 01:58:46 ID:???
何がしたいんだよ
449nobodyさん:2008/10/11(土) 02:07:49 ID:???
>>448
DBを使わないフォームを作成したいのですが、
Modelを使用せずに、Controllerに入力チェックとか書いちゃうのは
MVCとしてどうなのかなぁと思いまして
450nobodyさん:2008/10/11(土) 03:42:32 ID:???
MVC的に言えば、データの保存先が
データベースなのか、ファイルなのかは関係ないはずなので、
入力チェックをするとしたら、モデルでやるのが妥当。
451nobodyさん:2008/10/11(土) 05:30:44 ID:???
DBlessModel作っちゃえYO
452nobodyさん:2008/10/11(土) 07:46:51 ID:???
モデルに

var $useTable = false;

でモデルつかってDB使わずでいけるだろ。
453nobodyさん:2008/10/11(土) 16:48:55 ID:???
>>452
その状態でバリデーションとかヘルパー使うとModel.phpでエラーになるんですよね
454nobodyさん:2008/10/11(土) 22:44:35 ID:???
そーゆーことだったのか。
455nobodyさん:2008/10/13(月) 23:28:41 ID:???
少し気になったんですが、仕事でCakePHPを使っている人って
今案件受けたらRCのCakePHPを使うんでしょうか…?
それとも1.1ですか?
456nobodyさん:2008/10/15(水) 13:59:49 ID:???
>455
先日納品した案件は1.2RC2。特に問題はなかったよ。
今日から新しいプロジェクトの開発にかかるけど、そっちはRC3でやるつもり。
1.1は今後使うつもりはないですわ。
以前1.1で開発してたものを途中で1.2に乗り換えたとき、
変更対応でかなりロスしたもんで。
いくら現状唯一のstable版とはいえ、1.1の文法がヘタに染みつくと1.2への移行が精神的にきつくなるかと。

さて。飯にしようかね。。。
457nobodyさん:2008/10/16(木) 21:22:33 ID:???
そんなに変わったのか〜
458nobodyさん:2008/10/21(火) 17:24:56 ID:???
AuthComponentでAjaxログインしようとしても
<?php echo $this->requestAction('/users/login', array('return')); ?>と書くと
users/loginにリダイレクトしちゃうのは仕様?
459nobodyさん:2008/10/21(火) 22:18:09 ID:???
test
460nobodyさん:2008/10/23(木) 05:04:43 ID:???
PHPならどこでもいい話題だけど、あえてここで。

PHPのIDE何使っている?Eclipse?
俺、どうもEclipseのごちゃごちゃ感になじめず
今までテキストエディタを使っていた。
Java以外はなんか怪しいにおいがするし。

で、NetBeans 6.5が標準でPHPサポートするではないか。
今RCがでてる。一般的なIDE的機能はサポートされているだろうから
俺が興味あるのがリファクタリング機能。

デモをざっと見たところ変数名の置換とかには対応しているのかな?
ためしてみようとおもう。うまくCakePHPと連携できるかな?

もしすでにやっている人がいたら、なんか教えてちょうだい。
461nobodyさん:2008/10/23(木) 07:37:12 ID:???
NetBeansはいずれCakePHPにも対応するらしいから期待してる。
462nobodyさん:2008/10/23(木) 10:45:32 ID:???
>>461
へぇ。マジか。CakePHP対応ってどんなことするんだろう?
463nobodyさん:2008/10/23(木) 12:18:23 ID:???
残念。NetBeansでリファクタリングはサポートされていないようだ。
デモにあった名前変更は、よく分からないけど
カーソル行があるスコープ名前を一括で変えるだけ?
遠くにあるコードまでは変わらないようだ。残念。
まあこんなもんか。PHPとしてはまだ初期段階だろうし、
型無し動的言語のリファクタリングは難しいだろうし。
464nobodyさん:2008/10/24(金) 18:54:01 ID:???
明日カンファレンスだってーのになんだこの盛り上がりのなさは
465nobodyさん:2008/10/24(金) 22:08:58 ID:???
行ってみたいけど、こういうとき地方は損だなあと感じる。
466nobodyさん:2008/10/24(金) 22:22:17 ID:???
参加人数少ないしなぁ
行けるなら行きたいが
467nobodyさん:2008/10/25(土) 11:39:19 ID:???
東京までの交通費が痛いよね。
468nobodyさん:2008/10/25(土) 12:15:33 ID:???
いまカンファレンス来てるんだが、他に来てる人いる?
469nobodyさん:2008/10/25(土) 13:45:20 ID:???
会社経費で来てますよ

RC4までくるとは予想外
470nobodyさん:2008/10/25(土) 21:06:54 ID:???
1.2RC3   今ここ
1.2RC4   もうすぐ出る
1.2Stable  バグが0件になったら出る
1.3      機能追加等
2       PHP5のみサポートに変更
3       PHP6対応?
471nobodyさん:2008/10/26(日) 00:22:27 ID:???
結構道のりは長そうだ
472nobodyさん:2008/10/26(日) 07:55:28 ID:???
1と2同時進行とか無理かなぁ かなぁ
473nobodyさん:2008/10/26(日) 11:49:16 ID:???
PHP4ってIE並に悪だよな
474nobodyさん:2008/10/26(日) 12:14:59 ID:???
また頭悪そうな奴が来た
475nobodyさん:2008/10/26(日) 20:28:30 ID:???
RC3 で $html->input('Model/field'); が使えなくなって
$html->input('Model.field'); だけになったんだな。
最初気づかなくて焦ったぜ。
476nobodyさん:2008/10/28(火) 00:36:30 ID:???
これからCakePHPをデファクトスタンダードにしていくためには、
CakePHPで作られているCMSを有名にするのが早いのだろうか。
XOOPSレベルのCMS作って、有名どころの拡張モジュールを移植しまくれば。。。
477nobodyさん:2008/10/28(火) 00:52:39 ID:???
自分用のCMSっぽいものをつくっているけど、
表から見える所はいいんだけど、ただひたすら管理画面を作らなきゃならないのが
めんどくさくなって手抜きしちゃうんだよなー。
478nobodyさん:2008/10/28(火) 13:01:58 ID:???
>>469
会社の経費でってすっげーいい会社ですね。
うらやましかー
479nobodyさん:2008/10/29(水) 10:02:34 ID:???
save関数でupdateするときカラム指定しないと
idとcreated以外の全カラムが更新されるよね?
俺はカラム指定で保存する場合はこうしてるよ

更新カラムが少ないときはこうするけど

$this->data['モデルA'] = array('name'=>'うんこ');
$this->モデルA->save($this->data, false, array('name'));

更新カラムが多いときはこうすると楽だよ

$this->data['モデルA'] = array('name'=>'うんこ','mail'=>'[email protected]');
$this->モデルA->save($this->data, false, array_keys($this->data['モデルA']));


480nobodyさん:2008/10/29(水) 10:09:11 ID:???
>>453
php初心者だと思うけど
なんか間違ってると思うよ。俺は
var $useTable = false;
でいけてるよ
481nobodyさん:2008/10/29(水) 10:12:11 ID:???
IDE環境だけどCakePHP対応して欲しいと思うなら
eclipseで自分にあったプラグイン作ればいいよ
これほど自分にあったIDE環境はないよ
482nobodyさん:2008/10/29(水) 15:09:41 ID:???
ページング処理をしたく、
controllerに、$this-set('users',$this->paginate()); と書いたのですが、
Fatal error: Call to undefined method TasksController::paginate()
と、コントローラでエラーが出ます。

こうした場合、どこを調べれば良いでしょうか?
483nobodyさん:2008/10/29(水) 15:23:33 ID:???
>>482
○ $this-set
× $this->set
ここらへん?
484482:2008/10/29(水) 15:32:02 ID:???
>>483
cakephpの古いバージョンを使っていたせいでした; ごめんなさい
確かにそこも間違えてました;;
485nobodyさん:2008/10/29(水) 16:28:20 ID:???
submitiボタンに画像を使いたいのですが、formヘルパーのsubmitではできますか?
それともhtmlヘルパーのimageで工夫すればよいのでしょうか?
486nobodyさん:2008/10/29(水) 17:50:53 ID:???
>>485
submitのオプション又はsubmitImageで出来ますがマニュアルぐらいは読んどこう。
487nobodyさん:2008/10/29(水) 18:45:53 ID:???
>>486
謝謝
googleで調べまくっていたのですがなかったのですがマニュアルにありましたか。
もっとじっくり読めばよかったです。
488nobodyさん:2008/10/29(水) 19:27:11 ID:???
なんか文字小さくなっていたり、例が少ないのも一部あるけど
標準ヘルパー系はマニュアルにちゃんと書いてある
489nobodyさん:2008/10/30(木) 20:56:23 ID:???
何で1.2の日本語マニュアル
http://book.cakephp.org/ja/
は、深い階層を開いていくと、右側が切れて
table of contentsが見えなくなるんだろう…
IEでもFirefoxでもいっしょ。
490nobodyさん:2008/10/30(木) 21:17:18 ID:???
>>489
特定のページのみ、右カラムのメニューになぜかまたヘッダー部分が出力されているから。
アプリのバグ。
491nobodyさん:2008/10/30(木) 22:14:20 ID:???
>>490
なるほど。バグすか。
読めなくて困るんですよね…
492nobodyさん:2008/10/31(金) 18:02:22 ID:???
スレチなんだけどさー

小さな会社の優秀な技術者の採り方 第0回を開催しました
ttp://techlife.cookpad.com/2008/10/27/yu-shu-0/

この記事読んでどう思う? 特に下のあたりについて。

>入社しようと思った理由

>    * やりたいことができる
>          o 好き勝手やってよい文化がある
>          o 経験が生きる
>          o キャリアパス上重要なことが学べる
>    * 環境がいい
>          o 優秀な同僚
>          o 海外の事業所がある
>          o 女の子かわいい
>    * 会社の将来性が感じられる
>          o 世界で唯一のチャレンジを行っている
>          o 目的がはっきりしている
>    * 感じが良い
>          o 採用プロセス上 で会ったのがとても良い人
>          o 社長が面白い
>    * 縁があった
>          o 友達とか先輩とかが居た
>          o バイトしてた
493nobodyさん:2008/10/31(金) 20:21:19 ID:???
>>492
スレ違い
494nobodyさん:2008/10/31(金) 20:32:17 ID:???
まーまーそー言わずにさー感想聞かせてくれよ−
頼むから次は、スレ違い、とか言わないでくれよー
495nobodyさん:2008/10/31(金) 22:54:26 ID:???
小学生からやり直せ
496nobodyさん:2008/11/01(土) 00:18:12 ID:???
わかっててスレチ投稿したんじゃないのかよ
497nobodyさん:2008/11/01(土) 02:50:08 ID:???
例えば商品レコードが

 id、カテゴリid、値引率、……

みたいになってるとして、
カテゴリid(≒PK以外)を指定して
「該当するカテゴリの値引率を一括で10%に」
みたいな更新って、
(CAKEの機能として)可能ですか?

(Model->save()は
 id指定して一件ずつ更新するしかないんだよね?)
498nobodyさん:2008/11/01(土) 08:59:38 ID:???
updateAll
499nobodyさん:2008/11/01(土) 23:47:11 ID:???
例えば...「顧客A,顧客B,顧客C,...と今後も顧客は増えるとして、
それぞれの顧客の取引情報をデータベースに入れるとする。
だけど、それぞれの顧客の情報を串刺しで集計する事は無い。」
という(まあ普通じゃない)状況があるとする。
CakePHPで使うデータベースとしてSQLiteを使って、
SQLiteとかならデータベース1つ=1ファイルなので、
それぞれの顧客ごとにデータベースを分けて保存する事って、
できますか?つまり、動的に接続するデータベースを増やせるか?
って事なんですが。

本来なら、MySQLでもなんでも、一つのデータベースに入れて、
SQLのWHEREで抽出すれば済むじゃん、って言われそうだけど。
組み立てる条件が増えるとミスが増えそうなんで。

データベースを使わず、1顧客につき1つのテキストファイルに
入れるって案も有るんだけど。テキストファイルよりは、
一応SQLiteでもデータベースに入れた方が楽かな、と思ったので。
500nobodyさん:2008/11/02(日) 00:12:07 ID:???
CakePHPを使わない場合のやり方は分かるの?
501nobodyさん:2008/11/02(日) 00:53:13 ID:???
PHP5限定&SQLite決め打ちなら、
function db($kokyaku){
sqlite_open($kokyaku);
...
}
ってするだけと思ってるんだけど。
502nobodyさん:2008/11/02(日) 06:29:06 ID:???
>>499
それはすでにデータベースとは呼べない気がする。
503nobodyさん:2008/11/02(日) 10:58:34 ID:???
普通じゃないのは認める。
でも、顧客一人一人のデータに関しては、
データベースって言えると思う。

例えば、顧客AのデータをノートPCに
移して持ち出したりする時に、
データベース全体を持ち出すのは危険だし、
その度にいちいちDUMPするのも無駄が多い
(と思う)

そこで、(例えば)SQLiteなら、その顧客の
データベースのファイルだけを持ち出すのが
簡単かな、と。思ったわけですが。
504nobodyさん:2008/11/02(日) 11:04:28 ID:???
>>499
>組み立てる条件が増えるとミスが増えそうなんで。

ここら辺から考え方がおかしくなっている気がするぞw
串刺しの集計はしなくても、IDをキーに単純抽出する為の場所という認識で
一つの顧客テーブルを使えばいいんじゃないのか?
505nobodyさん:2008/11/02(日) 12:25:01 ID:???
> 本来なら、MySQLでもなんでも、一つのデータベースに入れて、
> SQLのWHEREで抽出すれば済むじゃん、って言われそうだけど。
> 組み立てる条件が増えるとミスが増えそうなんで。
この理由でデータベース分けるくらいなら、RDB使わないほうがいいんじゃ‥

データベース単位じゃないけど、テーブル自動生成するやつならつくったことある
506497:2008/11/02(日) 12:31:59 ID:???
>498
ありがと

1.2で追加されたのね……
手元の資料になかったお ><
507nobodyさん:2008/11/02(日) 14:52:56 ID:???
>>505
うむ。RDBじゃなくていいんだ。
でも、CakePHPは使いたいんだ。
で、データの管理で楽したいんだ。
508nobodyさん:2008/11/02(日) 15:11:53 ID:???
検索とかしないんだったら
必要なデータをクラスにまとめて
保存・更新の際にシリアラズしてDBにぶちこめばいんじゃね
509nobodyさん:2008/11/02(日) 17:41:13 ID:???
個々の顧客データの中では検索したいんだな。

「顧客」って書くから漠然としていて分かりづらいんだな・・・
「辞典」って読み替えてみて。「顧客A」は「国語辞典」、「顧客B」は「カタカナ語辞典」
と、目的毎に辞典の種類は増えて行く。(辞書の場合、串刺し検索できると便利だけど)
全部のデータを一まとめにしたくない。辞書の種類毎にデータベースを分類したいんです。
で、その分類は、例えば「萌え用語辞書」が追加されるとか、どんどん増やして行きたい。
その度に、別のデータベースに分けたい。一つのデータベース、例えば「国語辞典」の中では、
もちろん検索できないと困る。ただし、用語の説明の中身は、用語によって様々だから、
シリアライズして放り込むつもり。
そうすると、SQLiteでデータベースを分けて作ると、1つのファイルがそのまま1冊の
辞書そのものになる。←今回は、ここが重要
これなら「カタカナ語辞書」のファイルを友達に渡しても、「萌え用語辞書」が雑じってる
ことは無いので安心。(例えば、ね)

そういう、いわば辞書編集システムを、CakePHPのデータベースを扱う部分の工夫で
なんとか簡単に作れないかなー、というところなんです。
CakePHPでも複数のデータベースは使えるけど、あらかじめ'database.php'に
書き込んだ物に限られる。これが、動的に増やしたり変更する方法があれば有り難い。
510nobodyさん:2008/11/02(日) 17:49:09 ID:???
動的に増やしたり変更したりすればいいじゃない
511nobodyさん:2008/11/02(日) 21:34:39 ID:???
>>510
できるの?
512nobodyさん:2008/11/02(日) 21:47:23 ID:???
逆にできない理由を知りたい
513名無し募集中。。。:2008/11/03(月) 23:33:04 ID:8PMDTqib
1.1から1.2にしてがんばってるんだけど、
左上に実行中のメソッド名が表示されちゃう(HTMLの最初にメソッド名が出力されている)
んだけどなぜなんだろうか。
514nobodyさん:2008/11/03(月) 23:35:05 ID:???
しまったお里が知れてしまった。
出ているのはメソッド名じゃなくてview名らしい。
515nobodyさん:2008/11/03(月) 23:40:04 ID:???
めっちゃ自己解決した
拾ってきたbeforeRender()のサンプルの中に
echo $this->action;があったよ死のう。
516nobodyさん:2008/11/04(火) 00:02:52 ID:???
この間わずか7分の出来事であった・・・
517nobodyさん:2008/11/04(火) 05:42:03 ID:???
>>515
死んだら・・・だぁめ♪
518nobodyさん:2008/11/04(火) 12:59:24 ID:???
死んだら・・・らめぇ
519nobodyさん:2008/11/06(木) 21:23:56 ID:???
すみませんが、質問です。

bakeについてですが、これはCakeの配置のされ方が、下のページの
http://book.cakephp.org/view/32/Installation
Developmentであることを前提にファイルを生成するもので、Production や
Advanced の配置では使うことができない(現実的でない)という理解でよろし
いでしょうか?
520nobodyさん:2008/11/06(木) 21:30:59 ID:???
追伸。

もし、上の理解が間違っていて、Advancedの配置でもBakeが使えるのだとした
ら、Advancedの一例として、Cake のシステムは共通だが、作成するWEBアプリ
ケーションが同一サーバに複数あって、Cakeの同一のシステムを共有している
場合、特定のWebアプリをどうやってコード生成のターゲットとするか、その指
定方法を教えていただけたら、と思います。
521nobodyさん:2008/11/06(木) 21:38:37 ID:???
bakeで作ればコア(cakeフォルダ)へのパスは自動設定されているはずだからどこにおいても問題ない
522nobodyさん:2008/11/06(木) 21:39:33 ID:???
普通に日本語の方を見ればいいのでは
http://manual.cakephp.org/ja/view/32/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

駄目だとしても他の場所に作って移動すればいいのではないかと思うんだけど
それじゃ駄目なのかな?

まあ俺が>>513と同一人物と言うことは内緒だが
523nobodyさん:2008/11/06(木) 22:00:26 ID:???
>>521
すみません、ちょっとおっしゃる内容が分かりません。

少し詳しく質問し直させてください。
例えば、こういう配置だとします。

cake
/usr/lib/cake(個々のユーザは読み取り権限しか持たない)

app
/home/user01/app
/home/user02/app
...

webroot
/home/user01/htdocs
/home/user02/htdocs
...

webrootには各人ごとにindex.phpを置いて、cakeとappの位置を指定します。

この場合、/usr/lib/cake/console に個々のユーザが移動して、./cake bake
を実行した場合、例えばModelのファイルはどこに生成されるのでしょうか?
おそらく /usr/lib/cake/app/models だと思うのですが、ここには一般ユーザ
の書き込み権限がないので、動作しません。

個々のユーザごとに、/home/user0X/app/modelsに出力するよう bakeは指定で
きるのでしょうか?
524nobodyさん:2008/11/06(木) 22:01:50 ID:???
>>522
日本語のほうはURLが長いのでわずらわしいかと思いまして。

ひとつ前のレスに書きましたが、書き込み権限がない場合を想定しています。
525nobodyさん:2008/11/06(木) 22:20:55 ID:???
すみませんが、こちらの事情で、明日までここにアクセスできなくなりました。
質問させていただいたのに、非礼をお詫びいたします。
526nobodyさん:2008/11/07(金) 01:23:09 ID:???
>>523
Bakeでapp一式を生成する話かと思ってたが、modelとかを作る場合の話ね。
cake bake -app <appフルパス>で指定できる

または、
/home/user01/appをカレントディレクトリとして、cake bakeを実行すればよい。
但し、/usr/lib/cake/consoleにはパスを通しておくこと。(ちと気持ち悪いが)
527nobodyさん:2008/11/07(金) 10:47:32 ID:???
>>526
ありがとうございます!なるほど、コマンドラインオプションで指定するのか。

それにしてもbakeのドキュメントって見つからないと思ったら、
./cake bake help
こうすれば説明が読めることにやっと気づきました。
この説明以外にドキュメントがないというのが何ともですが。
後はソース読むしかないか。Railsもそうだったけど。
528nobodyさん:2008/11/07(金) 13:57:45 ID:???
いろいろ調べても出来なかったのでご教授願いたいのですが。
MySQLに画像は保存できるのですが、その画像をselectしてViewで表示するにはどうやればいいですか?
外部のPHPに記述して読み出すようにはあるのですが、cakePHPのViewから同様のことができません。
529nobodyさん:2008/11/07(金) 14:03:58 ID:???
>>528
何をやって、どう駄目だったのか書いたほうがいい。
外部のPHPなら、Cakeのviewで普通に画像として呼び出せばいいんじゃないの?
530nobodyさん:2008/11/07(金) 14:13:15 ID:???
>>529
$this->data['Event']['imagedata']にイメージのバイナリがセットされています。

echo $html->image($form->value('Event.imagedata'));
で表示させるとバイナリのまま表示されます。

それでimage.phpを作成して、header("Content-type:image/gif");を指定して
外部のPHPファイルで画像のバイナリを表示させようとしたのですが、
ビュー以下において単純な<img src="image.php">では呼び出せずにいます。
webroot以下やコントローラー以下にも配置したのですが同じでした。
ファイルの置き場所が悪いのでしょうか?
それとも簡単に出来る方法があればよろしくお願いします。
531nobodyさん:2008/11/07(金) 14:51:26 ID:???
>>530
イメージのバイナリを画像表示用のviewに渡して、viewでheader吐けばいけそうだけど。
MVCの設計としてどうかは知らん

最終的には画像表示用のコントローラ作ればいいんじゃないかな
532nobodyさん:2008/11/07(金) 14:55:58 ID:???
>>531
ビューでheaderをはきたいのですが他にもHTMLがありますので、画像の部分だけ「Content-type:image/gif」とかを指定したいのです・・・
533nobodyさん:2008/11/07(金) 15:34:56 ID:???
>>532
メディアビューを使えばできますよ。
マニュアルのビューの所。
534nobodyさん:2008/11/07(金) 15:44:18 ID:???
>>533
メディアビューは初めて聞きます。
サンプルはバイナリファイルをダウンロードさせるようになっていますね。
画像の場合はどのようにすればいいのかまだ分かりません。

例えばMySQLから取得した画像のバイナリーデータを
SNSのプロフィール画像のように表示させたいのです。。。
535nobodyさん:2008/11/07(金) 16:06:14 ID:???
なんかPHPをきちんとやらずに急にCake触ってる匂いが・・

>>532
そもそもHTMLと画像は別ファイルだよ。
外部のPHPファイルで画像表示に成功しているなら、viewに直接imgタグ書けばいいだけかと。
536nobodyさん:2008/11/07(金) 16:12:29 ID:???
ああ実物がないとメディアビューじゃダメか。失礼。
537nobodyさん:2008/11/07(金) 16:12:54 ID:???
beforeRenderでファイル吐いてexitしちゃえよw
538nobodyさん:2008/11/07(金) 16:37:20 ID:???
1.HTMLを表示

2.MySQLから取得した画像のバイナリをイメージで表示

3.HTMLを表示

上みたいな感じなので、2のパートだけをContent-type:image/jpegにしたいのですが
エレメントとかで分けてもheader("Content-type:image/jpeg");を記載したら
URLだけしか表示されないのです。
そのままだとバイナリデータが表示されます。。。

おとなしく画像をアップしてパス指定で管理するしかないのですかね。。。
539nobodyさん:2008/11/07(金) 16:47:27 ID:???
cakePHPを使用しないのであればビューからPHPを呼べばできそうなのですが・・・
http://q.hatena.ne.jp/1141838059
540nobodyさん:2008/11/07(金) 17:31:48 ID:???
>>538
>>535に書いたとおり、一つのファイルでHTMLと画像を兼ねるのは無理だよ?
541nobodyさん:2008/11/07(金) 17:40:49 ID:???
画像をHTMLにアスキーデータで組み込むのは無理じゃないよ
542nobodyさん:2008/11/07(金) 17:53:54 ID:???
>>541
今回はそういう事を意図してない雰囲気はする
543nobodyさん:2008/11/07(金) 18:13:58 ID:???
>>542
ご回答ありがとうございます。なかなか難しいのですね。

cakePHPでSNSのプロフィール画像を表示させたいイメージなのです。
ファイルをアップしてリンクのテキストで対応するのは出来るのですが、
バイナリーで保存してやりたいということです。
544nobodyさん:2008/11/07(金) 18:32:58 ID:???
>>543
あなたには無理ですのであきらめてください。
545nobodyさん:2008/11/07(金) 19:05:29 ID:???
>>544
つまんねぇレスすんなハゲ

これは使えないかな?

サムネイルコンポーネント
http://www.hideblog.net/nikkis/show/16

もっとスマートにできるなら俺も知りたい。
546nobodyさん:2008/11/07(金) 20:24:31 ID:???
ビューでバイナリを吐けるんだったら、レイアウトを空にして、ヘッダー付ければ出来ない?
文字データなら出来たけど。
547nobodyさん:2008/11/07(金) 21:14:59 ID:???
Railsなら簡単に出来たけど、Cakeだと難しいのかな。
548nobodyさん:2008/11/07(金) 22:25:45 ID:???
別件でお取り込み中のところすみませんが、質問です。

コントローラのファイルを、種類によっていくつかのサブディレクトリに分け
て配置することは出来るのでしょうか?


app/controllers/hoge/hoge0_controller.php
app/controllers/hoge/hoge1_controller.php

app/controllers/fuga/fuga0_controller.php
app/controllers/fuga/fuga1_controller.php

このように複数のサブディレクトリを作り、その中にコントローラを分けて納
めるようなイメージです。

また出来るとしたら、それらのコントローラにはどのようなURLでアクセスでき
るのでしょうか?
549nobodyさん:2008/11/07(金) 22:48:44 ID:???
550nobodyさん:2008/11/07(金) 23:08:49 ID:???
>>549
なるほど、ありがとうございます。bootstrap.phpの$controllerPathsですか。

CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandodの日記
http://d.hatena.ne.jp/yandod/20080510/1210416583
> 分散したディレクトリ内でファイル名やクラス名が衝突すると面倒な事になる
> と思われますので接頭語を付けるなどして管理するのが良いかもしれません。

うーん。コントローラの名前空間は共通なのか。
URLのパス指定で、各ディレクトリを呼び分けるとか出来ないでしょうか?
551nobodyさん:2008/11/07(金) 23:29:48 ID:???
Base64エンコードしたデータ格納しといてMHTMLで表示しとけよwww
552nobodyさん:2008/11/07(金) 23:32:23 ID:???
mysqlの中に画像を入れるのは馬鹿だろ
そもそもmysqlは画像データを格納するために作っていないから
画像はフォルダに入れて管理した方がいいと
mysql作者が語ってるのに。
そんな自分もかけだしのときはmysqlに画像データ入れてました
管理は楽だけどね。かなりの負荷がかかる。
Bakeとか使う人も素人くさいと思う。
553nobodyさん:2008/11/07(金) 23:49:13 ID:???
>>552
同意。mysqlじゃなく適当なフォルダに画像を突っ込んだ方がいいよ。
554nobodyさん:2008/11/08(土) 00:12:16 ID:???
>>550
http://book.cakephp.org/ja/view/46/Routes%E3%81%AE%E8%A8%AD%E5%AE%9A
Routes追加すればURL上は階層化されてるように見せることは出来るが、名前の衝突は回避できない。

コントローラ名にパス名も入れればユニークになって衝突回避出来なくもないが、色々面倒なことになる。
555nobodyさん:2008/11/08(土) 00:14:48 ID:???
Bake便利だと思うけどな。
使うのはスキーマ検証時くらいだけど。
556nobodyさん:2008/11/08(土) 00:17:44 ID:???
そもそもBakeの使い方がわからないという。
557nobodyさん:2008/11/08(土) 00:19:20 ID:???
>>552,553
case by caseだとおもうけど

DBでファイルのパス管理してたらそのファイルが消されてたりとか。
かといって参照頻度が高いときはDBに置きたくないしな

さすがにデザインとかで使うような画像は普通に置いとくけどさ
558nobodyさん:2008/11/08(土) 01:37:22 ID:???
>>557
DBに入れておいて、参照されたらキャッシュを作り、そのキャッシュを送信するって方法もあるらしい。
2回目以降は早いし、ファイルが消えても問題ない。
559nobodyさん:2008/11/08(土) 02:27:53 ID:???
たしかにDBにも入れといたほうがバックアップは楽そうだね
560nobodyさん:2008/11/08(土) 02:50:18 ID:???
>>558
それ考えた奴天才じゃね?
561nobodyさん:2008/11/08(土) 03:22:53 ID:???
Cakephpでキャッシュオンにして簡単に実現できそうだ
562nobodyさん:2008/11/08(土) 07:55:27 ID:???
ここ
画像もDBに格納して管理する −扱いがめんどうなLOB(ラージオブジェクト)は使わない方法も含め
http://neta.ywcafe.net/000774.html
563nobodyさん:2008/11/08(土) 11:22:34 ID:???
画像格納に強いDBならいいけど
mysqlは画像を格納するという目的で設計されてないからね
だから画像をDBに入れるのが悪いというのではなく
画像をmysqlに入れるということがナンセンス
564nobodyさん:2008/11/08(土) 11:26:06 ID:???
mysqlは高速が売りだからね
画像格納させたいならoracleとかの方が合理的だと思うよ
565nobodyさん:2008/11/08(土) 11:33:20 ID:???
画像表示のパフォーマンスを考えればLinuxファイルシステムが最強
DBと連携させて管理するのが面倒だけど、そこまで面倒な管理とも思えない
画像はデータの一つだからDB格納がよいという理念なら
htmlもcssも全部DBに入れよということになる

566nobodyさん:2008/11/08(土) 11:38:58 ID:???
データはなんでもかんでもDBという流れの人は
DBの持つ性能とバランスをどこまで考えてるの疑問に思う

567nobodyさん:2008/11/08(土) 11:42:47 ID:???
だからあくまでキャッシュ前提の話なんだろ
568nobodyさん:2008/11/08(土) 12:05:42 ID:???
http://dev.mysql.com/doc/refman/4.1/ja/tips.html

通常の Web サーバセットアップを使用する場合は、画像をファイルとして格納する。
言い換えると、データベース内にはファイル参照のみを格納する。この主な理由は、
通常の Web サーバのほうがデータベースコンテンツと比較してファイルのキャッシュに優れているためである。
このため、ファイルを使用したほうがシステムの高速化を容易に図れる。
569nobodyさん:2008/11/08(土) 12:09:44 ID:???
ファイルシステムによるキャッシュ前提なら、DBをバックアップするだけでユー
ザのデータを一括管理できるというメリットしか存在しないと思うけどな。
Railsのときはそうやってて、非常に便利だった。
570nobodyさん:2008/11/08(土) 14:24:18 ID:???
>>554
> コントローラ名にパス名も入れればユニークになって衝突回避出来なくもないが、色々面倒なことになる。

了解です。ありがとうございます。
今回はbootstrap.phpの$controllerPathsでやって、名前の衝突についてはその
都度対処することにしようと思います。
571nobodyさん:2008/11/08(土) 15:12:49 ID:???
A hasMany B
B hasMany C

C belongsTo D
みたいなときのリレーションの貼り方が判らないんですが、
そもそも可能なんでしょうか?
(Aを基点にA〜Dのテーブルからデータを取ってくる想定)

SQL直書きでは勿論可能ですが。

572nobodyさん:2008/11/08(土) 15:56:39 ID:???
>>571
そこまでしてリレーションに拘るのは返って
生産性を落とす可能性があるから
要はバランスですね
どこからSQLl直書きにするかの線引きはね
573nobodyさん:2008/11/08(土) 16:42:40 ID:???
MYSQLだから画像は駄目と硬直的に反応するのは駄目だな

アクセス頻度やキャシュの実装、使い方や状況によって向いてる場合もあろう。
574nobodyさん:2008/11/08(土) 17:08:34 ID:???
画像を表示させるにはフォルダにアップして管理するのが確実みたいですね。
簡単に出来るのなら採用したかったのですが・・・
575nobodyさん:2008/11/08(土) 18:47:57 ID:???
個人情報が含まれる画像だとDBで管理するのが普通でしょ
履歴書の写真とか。
576nobodyさん:2008/11/08(土) 18:54:20 ID:???
ファイルシステムで管理するからと言って、直接見られるところに
置くわけでは無いと思うが。

認証チェック経由でファイルを返すのが普通でしょ。
577nobodyさん:2008/11/08(土) 19:06:19 ID:???
ファイルシステムで認証チェックしてファイル返す方法ってbasic認証のこと?
578nobodyさん:2008/11/08(土) 19:11:50 ID:???
画像格納の話だけど
ファイルパスのみDBに突っ込んで画像はファイルシステムから読み出すようにすりゃ良いんじゃないの?
画像データそのものをDBに突っ込む必要があるとしたら、
バイナリデータで検索する場合しかなくない?
579578:2008/11/08(土) 19:15:44 ID:???
他にもあるな。
例えばDBだとデータをまとめて暗号化するようなソリューションがある場合があるが
ファイルシステムに保存するとそういう枠組みから漏れてしまう
まあファイルシステムドライバで暗号化すれば良いだけなんだけど
ドライバ方式とDB方式の差異はパフォーマンスくらいか
それも特定ディレクトリだけ暗号化するようにすれば良いだけか
580nobodyさん:2008/11/08(土) 19:26:04 ID:???
<?php
// 何かしらの認証チェック...

header("Content-type: ...");
...
readfile( 直接ブラウズできないパスの画像ファイル );
?>

な処理をimgのsrcに指定。
581nobodyさん:2008/11/08(土) 19:32:38 ID:???
ブラウザ⇔phpは話題にしてないと思うんだけど
php⇔hdd間での画像データのやり取りをどうするかって事だよね
582nobodyさん:2008/11/08(土) 20:14:49 ID:???
>>581
元は前者の話
相談者のスキルが異常に低かったのでなぜか後者の話に移った
583nobodyさん:2008/11/09(日) 06:03:18 ID:???
画像をDBで管理てのもファイルシステムで管理てのも
同じくらい面倒だ、DB画像管理が最高に楽じゃない限り
パフォーマンスのいいファイルシステムになる
584nobodyさん:2008/11/09(日) 06:10:19 ID:???
mysqlを画像に入れた場合のメリットが見えない。。。
585nobodyさん:2008/11/09(日) 07:31:37 ID:???
>>565
同感。
586nobodyさん:2008/11/09(日) 13:38:34 ID:???
>>565
> 画像はデータの一つだからDB格納がよいという理念なら
> htmlもcssも全部DBに入れよということになる

画像はM
htmlやcssはV

DBには入れませんが。。。
587nobodyさん:2008/11/09(日) 13:55:11 ID:???
ユーザの作ったデータ(日々変動する)と、開発者の作ったデータ(基本的に
リリース時で固定)は別物だと思うが。
前者をDBで一元管理できると便利だよ。
まあ抵抗のある人に無理強いするつもりはないし、個々人の自由だと思うけど。

自分はCakePHPでもこれがやれるならやりたいなあ。
何とか実現できないものか。
588nobodyさん:2008/11/09(日) 14:11:02 ID:???
スケールする/しない、管理できる規模/できない規模の話だからな。
条件があえば、DB管理で一元管理でも良いと思う。

この辺を思い出した。
ttp://neta.ywcafe.net/000774.html
ttp://blog.livedoor.jp/techblog/archives/64648176.html
589nobodyさん:2008/11/09(日) 15:42:14 ID:???
MovableTypeとかCSSやHTMLテンプレートDBに入ってるだろ
590nobodyさん:2008/11/09(日) 15:47:24 ID:???
>>586
ページ上に表示されるような画像はVだよ
そしてページ上に表示されない画像ならWEBシステムの中に入れておくべきものじゃない
画像でありながらMになりうるのは、画像検索システムのようなものだけ
591nobodyさん:2008/11/09(日) 15:48:39 ID:???
例えば履歴書の画像データの話が出たけど
それをWEB上からログインして観覧するようなシステムがあるならV
一切使い道が無いならWEBシステム外で保管しておくべきもの
無いと思うけどその画像で画像検索するならM
592nobodyさん:2008/11/09(日) 23:20:30 ID:???
>>590
検索対象じゃないとMになれないの?
↓そう読み取れなかったが
http://ja.wikipedia.org/wiki/Model_View_Controller
593nobodyさん:2008/11/09(日) 23:25:24 ID:???
設計にこれが絶対正解ってのはないでしょ。
要件次第だと思うよ。
594nobodyさん:2008/11/11(火) 09:18:04 ID:???
Vというのはファイル形式そのもので
ファイルをバイナリーデータに変えたものがMである
595nobodyさん:2008/11/11(火) 09:55:03 ID:???
>>594
バイナリとかそんなデータ表現は一切問題じゃない
596nobodyさん:2008/11/11(火) 11:39:47 ID:???
Mはデータを扱う仕組み
Vはデータを表示する仕組み
Cはデータを操作する仕組み

画像はデータなのでそのどれでもないと思うが
597nobodyさん:2008/11/11(火) 11:48:43 ID:???
「扱う」と「操作する」の日本語の違いがわからないっす
辞書には
> あつか・う〔あつかふ〕【扱う】
> 道具・機械などを、使ったり操作したりする。取り扱う。
ってあったっす
598nobodyさん:2008/11/11(火) 12:46:42 ID:???
Cは操作限定
Mはデータの出し入れや変換、型決めなど広範囲に扱える
599nobodyさん:2008/11/11(火) 18:28:03 ID:???
MとかVとかなにいうてんねんとおもったら、MVCのことだったのか
600nobodyさん:2008/11/11(火) 18:41:57 ID:???
SとMなら分るんだけどな
601nobodyさん:2008/11/12(水) 01:29:19 ID:???
画像の加工はモデルに突っ込むね
コントローラはモデルで引っ張ったデータをチェックしてビューに渡すだけだな
602nobodyさん:2008/11/12(水) 09:05:32 ID:???
再利用する頻度の少ない加工処理はコントローラに書いてるよ
モデルに書くと生産性が落ちる
なぜなら
再利用できるように関数化させるのが手間
再利用が2回程度ならコントローラ上でコピペが最短
603nobodyさん:2008/11/12(水) 09:12:09 ID:???
あとモデルが厚くなりすぎると
総体的にコード量が多くなる。
なぜなら
symfonyのように
MとVのやりとりが直接出来ないから
Cに橋渡し的なコードを書かないといけない分
コード量が増える
symfonyのうような仕様なら
モデルをどんどん厚くすべきだが
CakePHPの場合は
モデルを厚くしすぎるのも
作業効率が落ちると思う
604nobodyさん:2008/11/12(水) 17:43:12 ID:???
http://book.cakephp.org/ja/view/73/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B
ここ見るとfind系が全部find()に統合されたって書いてあるけど、
findAllByって使っちゃっていいの?
特に非推奨とは書いてないけど。
findByとfindAllByだと配列で条件指定する新しい形式が使えなくて
nullを並べる旧形式のままだから、条件指定方法が統一できなくて
ちょっと気持ち悪いんだけど…
新形式の条件指定に対応しないってことは、そのうちマジックメソッド自体が
消える予定なのかな。

調べてみたけど、日本語だとこれくらいしか記事がない
http://d.hatena.ne.jp/ichiichinini/20081104/1225832073
605nobodyさん:2008/11/12(水) 17:55:00 ID:???
findByGoogle
606nobodyさん:2008/11/12(水) 20:14:45 ID:???
>>604
find系てfind()でほとんど出来ると思うので
最初から意味の無さそうな機能だなとは思ってた
したがってfind()で統一してる人ばかりだと思うんで
どうでもいいよ
607nobodyさん:2008/11/12(水) 20:23:16 ID:???
似たような処理を持つ関数をやたら増やすもんでは無いと思う。
可読性とコーディング量は改善されるけど。
いつも使わない関数だとすれば、単なる無駄
608nobodyさん:2008/11/12(水) 20:32:06 ID:???
CakePHPの良いところは
データのやりとりが配列思考なところなんだよね
というのはphp自体が壊れたオブジェクト指向だから
配列思考型のフレームワークはphpにはピッタリだと思う。
あと配列思考型は中小規模にも適してる
CakePHP自体が中小規模を対象として設計されてると思う

rubyは完成されたオブジェクト指向言語だから
rorのようなオブジェクト指向型でのデータのやりとりがマッチする
609nobodyさん:2008/11/12(水) 20:36:33 ID:???
>>603
> MとVのやりとりが直接出来ないから

つーかやったらいかんだろw
MVCって何か知ってるか。

まあそんなにやりたきゃ、viewにmodelを渡せばいいだけ。
610nobodyさん:2008/11/12(水) 21:16:40 ID:???
>>609
viewにmodelを渡せばいいだけ

具体的にお願いします
611nobodyさん:2008/11/12(水) 21:43:29 ID:???
$this->set($this->Model)
612nobodyさん:2008/11/13(木) 01:50:37 ID:???
>>608
ルビリンのことかーーーーーーーーっ!!!
613604:2008/11/13(木) 11:26:34 ID:???
>>606-607
やっぱりfind()で統一の方向なのか…
AND検索はマジックメソッド使った方が書きやすいから好きだったんだけど。
今後はfind()で統一してみる。
614nobodyさん:2008/11/13(木) 12:56:14 ID:???
できるだけモデルに書いた方が
いいと思うんだけどなぁ・・・。

再利用するかしないかは別として。
まぁ、個人的な意見なのですが。
615nobodyさん:2008/11/13(木) 16:20:24 ID:???
理由も書いてくれないと賛も否も
616nobodyさん:2008/11/13(木) 18:25:42 ID:???
コントローラにごちゃごちゃ書くとユニットテストがしにくい
617nobodyさん:2008/11/13(木) 20:23:44 ID:???
CakePHP本家はモデルを厚くすべきと書いてあるけど
生産性を第一に考えると関数化してモデルに入れるよりも
コントローラ内で同じ構文を連続コピペした方が早い場合もあるんだよね。
例えば、納期がほとんどないという、追い込まれた状況なら
わざわざ関数化するのも時間がかかるじゃん、そういう意味もあるんだな
時間が限りなくあるなら、出来るだけ関数化してモデルに入れるのがベストだけどさ

618nobodyさん:2008/11/13(木) 20:26:25 ID:???
関数化させる手間をどうバランス取るかだと思うんだが・・・
619nobodyさん:2008/11/13(木) 20:32:36 ID:???
モデルを厚くするというのは、ある程度
CakePHPでの経験が無いと、いきなりは、逆に時間がかかり
重要である生産性が落ちると思う。
経験を積みながら、少しずつリファクタリングすてモデルを厚くしていく方法がベストかな
620nobodyさん:2008/11/13(木) 22:47:32 ID:???
先月からCakeさわり始めて、
コントローラーにコードを書きまくってたんだが、
徐々に慣れてきてからは、モデルを厚くする方が良さそうだなという感想。
621nobodyさん:2008/11/14(金) 15:37:31 ID:???
1.2RC3がうごかない、インストールしたディレクトリにアクセスしても画面が真っ白になっちゃう
って現象に陥った人っていらっしゃいますか?

ブラウザ?と思ったんですが、どのブラウザでも真っ白になっちゃいます。
1.1系で試したらうまくいくのに…。

mod_rewriteも有効、phpのバージョンもOK、パーミッションも変更済み。
.htaccessの内容も確認しましたが、1.1と1.2で同じでした。

同じ現象にぶち当たった方、いらっしゃったら教えてください><
622nobodyさん:2008/11/14(金) 15:43:57 ID:???
設定もしくはコーディング失敗したら真っ白になるけど
623nobodyさん:2008/11/14(金) 15:59:49 ID:???
デバッグレベルあげろよ
624621:2008/11/14(金) 16:23:40 ID:???
>>622
うーん、落としてきたモノをそのまま展開してるだけなんですよね。
どっかで間違えたのか・・・

>>623
デバッグレベルは3にしてあります。
それでも真っ白なんです><
625nobodyさん:2008/11/14(金) 16:25:23 ID:???
>624
PHPかApacheのログ見れ。
多分、cakeの問題ではない。
626621:2008/11/14(金) 16:46:03 ID:???
>>625
ありがとうございます。
でも、それらしいエラーは見あたりませんでした。。

でもなんとなくサーバーっぽい気はします。
627nobodyさん:2008/11/14(金) 17:34:28 ID:???
Shift_JIS で保存してるとか?
628nobodyさん:2008/11/14(金) 17:36:59 ID:???
サーバーっぽいってなんだよw
エラー無いのに何も表示されないなら何も出力しない処理に成功してるって事だろ
629621:2008/11/14(金) 18:29:19 ID:???
>>627
確認したんですが、それもなさそうです。。

>>628
そうですねw
いや、設定かなぁと。RewriteBaseとか。
でも別のサーバでは特に追記しなくても普通に動くので、なんだろう、と。
630nobodyさん:2008/11/14(金) 19:48:22 ID:???
1.1 -> 1.2RC2 のときに同じ現象陥った。
結局訳が分からず、一念発起して、1.2で書き直したけど。
同じかなあ?
631630:2008/11/14(金) 19:50:04 ID:???
あ、ごめん。移行の話じゃないか。スマン
632nobodyさん:2008/11/14(金) 19:51:34 ID:???
config/database.phpで文字コード明示とか、どう?
633nobodyさん:2008/11/14(金) 22:25:29 ID:???
NetBeand 6.5RC2使ってみたんだが、デバッグ時のmod_rewriteって対応してないの?
Eclipse+XDebug、NetBeansでCake mod_rewite無し版だとちゃんと使えるんだが・・・
634nobodyさん:2008/11/15(土) 00:12:16 ID:???
NetBeandって何?
635621:2008/11/15(土) 01:03:38 ID:???
>>632
うーん・・ダメっぽいです。
とりあえず今回は時間もないので1.1で作ることにします。
いろいろとありがとうございます。
636nobodyさん:2008/11/15(土) 02:07:44 ID:???
そんなレベルでいいのか仕事だろ
637nobodyさん:2008/11/15(土) 02:18:29 ID:???
PHPで動いてるんだから何かしらエラーは出るはずじゃないの?
例えそれがフレームワーク側のバグだとしても。
過去に経験があったのは文字コードの違いで真っ白になると言う事はあった。
コードに複数の文字コード混じったりしてない?
それ以外はページ上なりapacheログなりにエラー出てたが・・・。
638nobodyさん:2008/11/15(土) 02:19:34 ID:???
最悪、フレームワークのコードにデバッグメッセージ入れて
どこで止まってるか突き止めるのは可能だね
639nobodyさん:2008/11/15(土) 08:21:24 ID:???
webrootのindex.phpをコメントアウトして、適当にphpinfoとか出してみたら?
表示が出なければApacheの設定の問題
出たらコメントアウトを1行ずつ外してデバッグメッセージ出して試していく
640621:2008/11/15(土) 11:24:41 ID:???
諦められなくていろいろといじっていましたw
>>636-639
みなさんありがとうございます。
アドバイスしてくださったようにいろいろ試してみました。

webroot上のファイルがきちんと拾えました。
ということで、mod_rewriteの設定がおかしいようではないようです。

で、現状わかったのは、とりあえず処理としてはdispacher.phpを
読み込むところまでは来ていることがわかりました。
(bootstrap.phpの最後まで)

もうちょっと調べてみます。
ここまで来たら動かしたい。
641nobodyさん:2008/11/15(土) 18:45:37 ID:???
テーブル名を複数形にしろ、っていうけど
頭文字とった略語ってあるじゃん
PHP、DB、FWなんてのもそうだけど
そういうのに複数形つけるのに抵抗感があるんだけど、普通なこと?
642nobodyさん:2008/11/15(土) 19:01:10 ID:???
BBSをbbsesって書かないといけないんだよね?
bbsなら一目だけどbbsesじゃ一瞬分からないから
やりたくないんだよなあああ
643nobodyさん:2008/11/15(土) 19:03:19 ID:???
ちょw
テーブル名bbsesだとモデル名bbse
テーブル名bbsだとモデル名bb
テーブル名bbssだとモデル名bbss

だめじゃんwwww
644nobodyさん:2008/11/15(土) 19:10:27 ID:???
>>642
BBSをモデルにする設計が問題じゃね?
BoardとかThreadとかEntryとかにすればいいんじゃないか?
645nobodyさん:2008/11/15(土) 19:12:01 ID:???
略語で最後がsで終わるものは
非略語にしないとダメっぽ
本当にこんなことしなきゃいけないのか・・・
中途半端に略語でも最後がs以外なら大丈夫なのが困る
英単語って全部非略語にしたらすっごい分かりにくくなると思うし
646nobodyさん:2008/11/15(土) 19:14:29 ID:???
>>644
略語にされてる英単語に規則なんて無い
ただ長いものは略語にされてそれが広まってる
BBSの件はboardでもギリギリ分かるしそうするつもりだけど
他にもいくらでも略語はあるんだよね
CDでもDVDでも、ISBNでもISDNでもADSLでも
それらを非略語にする事に強い抵抗感があるんだがw
647nobodyさん:2008/11/15(土) 19:19:38 ID:???
OSを複数形にしてossなんて書いたらオープンソースかと思っちゃうな
AS,BS,CS,DS,ES,FS,GS,HS,,,,,,,,,,,,
いくらでもsで終わる略語があるんだが
648nobodyさん:2008/11/15(土) 19:20:51 ID:???
全て小文字と言う制約も手伝って最悪な事になってるなw
649nobodyさん:2008/11/15(土) 19:25:32 ID:???
略語じゃなくても末尾がsで終わる単語の複数形に正しく動作しない
http://www.cpa-lab.com/tech2/inflects/

bbses,bbs,bbss全てモデル名がおかしなことになる
aases,aas,aassでも同じだから
650nobodyさん:2008/11/15(土) 20:51:02 ID:???
どうでもいいがBBSのSってSystemのSだぞ
そもそも命名規約がおかしいっての
651nobodyさん:2008/11/15(土) 20:52:05 ID:???
ちなみにNewsは正しく使える
どちらもNewsのまま
652nobodyさん:2008/11/15(土) 21:08:11 ID:???
>>650
何が言いたいの?
653nobodyさん:2008/11/15(土) 21:13:25 ID:???
全部明示的にテーブル指定すればいいじゃん
654nobodyさん:2008/11/15(土) 21:17:17 ID:???
命名規約にルール追加は可能だけど
でもそれ本来は多言語対応や既存テーブルのためでしょ
新規テーブルで正しい英語の複数形つけて対応出来ないケースがあるのはおかしい
655nobodyさん:2008/11/15(土) 21:23:48 ID:???
最初の質問者じゃないけど・・

よく
foreach ($posts as $post) {
echo $post['Post']['title]
......

みたいのが出てくるけど、
BBSとかNEWSの場合はどうしてる?

無理やり
foreach ($newses as $news) {
......
とするのか、それとも
foreach ($news as $entry) {
......
みたいにするのか・・・
656nobodyさん:2008/11/15(土) 21:34:41 ID:???
そもそも、略語の複数形って一般的な英語にあるのか?
例が思いつかないのだが。
657nobodyさん:2008/11/15(土) 22:01:06 ID:???
CDs、OSsなんかは見かける。
一般的な英語では略語は普通大文字だが、
cakephpではテーブル名は全て小文字にしなきゃいけないからさあ大変
658nobodyさん:2008/11/15(土) 22:02:35 ID:???
単にテーブル名は大文字、ってすれば良かった気がするんだけどね
複数形部分のみ小文字で
CDs,OSs
PROGRAMMERs
WEBSITEs

これでよかったのに
659nobodyさん:2008/11/16(日) 00:39:32 ID:???
>>652
データベースにシステムを格納するかってことだろ?
格納するのはboardの情報とboardに書かれた記事(contentsやarticleみたいな)だろ
それを管理するシステムを総称してBBSになるんじゃないのか
660nobodyさん:2008/11/16(日) 00:40:39 ID:???
>>659
そんなのは問題じゃなくない?
ずれた事言ってるよね君

一般的に全ての場合において正しい設計をすれば
略語の複数形で困る事なんて無い、って言えるなら別だけどw
661nobodyさん:2008/11/16(日) 00:40:50 ID:???
>>657
cd_infomations
os_informations
格納するのはCDやOS自体ではなくそれに関する情報だろ
662nobodyさん:2008/11/16(日) 00:43:43 ID:???
>>661
頭悪い奴は黙ってろ
usersをuser_informationsとすべき理由なんて無い
cdやosの複数形に困るから苦し紛れでつけるに過ぎないだろ
情報機器であるサーバマシンのDBに入っているものが情報である事なんて明示する必要が無さ過ぎる
663nobodyさん:2008/11/16(日) 00:45:51 ID:l+j4XBOD
実装に困らない回避例出してくれてるのに、
英語原理主義にこだわってかみついてる奴ってなんなの?
664nobodyさん:2008/11/16(日) 00:46:33 ID:???
>>662
命名規約はフレームワークに合わせてねってだけのこと
嫌ならフレームワーク使うな
665nobodyさん:2008/11/16(日) 00:47:15 ID:???
あくまで苦し紛れの回避策でしかないのに
それがあたかも回避策ですら無くすべての命名はこう行うべきだというニュアンスで言ってるからだろ
666nobodyさん:2008/11/16(日) 00:50:45 ID:???
systemはDBに格納するものじゃないだの
全てのテーブルには末尾に_informationsをつけるべきだの(格納するのはそれ自体じゃなくて情報だもんね?wwww)
電波過ぎるだろ
667nobodyさん:2008/11/16(日) 01:00:21 ID:???
ものすごい曲解ですね
668nobodyさん:2008/11/16(日) 01:07:42 ID:???
_informationsとつけるのは回避策であって
>格納するのはCDやOS自体ではなくそれに関する情報だろ
この様に一般的な解釈のもと行う事じゃない

こんな苦肉の策をとらなきゃいけないのかという話なのに
さも当然の事のようにこんな事主張されてもw
669nobodyさん:2008/11/16(日) 01:11:08 ID:???
それがフレームワークの制約という奴です
嫌ならCakeやRoRの使用はお控えください
670nobodyさん:2008/11/16(日) 01:14:58 ID:???
実際問題開発の現場でも、フレームワークのここが自由にできないって
開発止める奴いるから仕方ないよ。
671nobodyさん:2008/11/16(日) 01:16:59 ID:???
別にこの回避策は既にやってるし良いんだが
これが一般的な解釈のもとやる事だと言われたら納得できるわけないだろwww
しかも数レス引っ張って何かすごい意見を持ってるのかと聞き出したらこれじゃあなw
672nobodyさん:2008/11/16(日) 01:18:41 ID:???
そうなんだ
そこまでDBの名前に拘るのって
神経質ではないの?

DBの名前の不自由さ>cakeを使うこと
って単純な話なの??
673nobodyさん:2008/11/16(日) 01:21:00 ID:???
いやお前の方が曲解だろwwww
そんな気になるならせいぜい100万回でも俺の文章読み直してろ低脳
674nobodyさん:2008/11/16(日) 01:25:27 ID:???
wを2個以上使った時点で議論は負けだ
675nobodyさん:2008/11/16(日) 01:28:52 ID:???
これを議論と捕らえてるのがおかしい
相手は何も主張してないし、俺はそいつがどれ程頭の悪い考え方をしてるのかを親切で教えてやりたいだけだからなww
676nobodyさん:2008/11/16(日) 01:29:31 ID:???
会ったら良い人なのに…(たぶん
677nobodyさん:2008/11/16(日) 01:31:37 ID:???
実際あったら>>670の部下だったとか
678nobodyさん:2008/11/16(日) 03:47:10 ID:???
命名の話題になっているので、聞きたいのですが、
watchlistとかguestbookのような場合、テーブル名は
やはり複数形にするのでしょうか?
ウォッチリストやゲストブックが複数あるわけではないので、
ちょっと違和感があるのですが・・・

それとも、上で話されていたように、
guestbook_entriesのようにするのが妥当でしょうか?
679nobodyさん:2008/11/16(日) 04:24:01 ID:???
どっちでもいいと思うが
680nobodyさん:2008/11/16(日) 14:59:56 ID:???
ポインタ(Pointer)の配列・・・
ポインタのポインタの配列・・・
ポインタのポインタの配列の配列・・・
ポインタの配列のポインタの配列・・・
681nobodyさん:2008/11/17(月) 10:02:05 ID:???
>>678
guestbook_をつけるかどうかは他モデルとのかぶり具合によるけど
entriesのようにするのが、適切でしょうな

foreach ($entries as $entry) ... みたいな
682nobodyさん:2008/11/18(火) 01:37:43 ID:???
ER図の作成ソフトどうしてる?
cakeの規約に揃うように設定できるものがみつからない
683nobodyさん:2008/11/18(火) 13:09:08 ID:???
ちなみにforeachの右側の命名は一律で良いと思います
変数はforeach宣言したときに初期化されるし
わざわざ命名する時間は省ける

foreach ($entries as $line)

foreach ($entries as $k => $v)

684nobodyさん:2008/11/18(火) 17:07:52 ID:???
まあそれでいいかもね
コード見る時はforeach見た時点で配列の順次処理なんだと分かるし
685nobodyさん:2008/11/19(水) 00:26:30 ID:???
2重以上のループの時は辛い
$v2とかすればいいのかもしれんが、階層に依存した名前は付けたくないな。
686nobodyさん:2008/11/19(水) 00:41:14 ID:???
関数化できそうだな
各階層用のコールバック関数の配列を引数に取って順次処理するような
内部では自分を再帰的に呼び出すようにしておけばforeach自体は一つで済む
687nobodyさん:2008/11/19(水) 01:22:24 ID:???
それは気持ち悪いというか美しくないとうか。
それにforeach外のローカル変数にアクセスできなくなるし。
手間という意味では本末転倒。
688nobodyさん:2008/11/19(水) 02:21:00 ID:???
foreachの中が長くなるようならちゃんと名前をつける。

コードを読むときに、foreachを含めて一塊で読むか
foreachの中だけを読むか。

短いコードならforeachも含めて一塊にして読むが
長ければ、ループする処理ってのはおいといて、
中身だけを取り出して読む。

塊の中で名前が適当でもわかるなら(つまり前者)省略してもいいが、
塊の中でいきなり$vとか出てきてもわからないだろう?(つまり後者)って
時はちゃんと名前をつける。
689nobodyさん:2008/11/19(水) 12:31:25 ID:???
そういや、ちょっと前にfindの話でメソッドをまとめるのがよいって話あったけど、
クラスのプロパティに代入するメソッドを作る場合、

setPramA($data);
setPramB($data);

とプロパティごとに作るより、

set('paramname',$data);

として一カ所にまとめたほうが幸せなんすか?
690nobodyさん:2008/11/20(木) 05:51:48 ID:/cM24YKo
find all で、フィールドのひとつを計算式含ませて、ASで名前をつけているのですが,
Doc.count *100 AS Doc__score
出力が
[0] => Array
(
[Doc] => Array
(
[id] => 6064
[title] => regulations
)
[0] => Array
(
[Doc__score] => 165.34334421158
)
)
のようになってしまいます。
どうにか[Doc]の配列に計算したscoreを含めるようにできないでしょうか?
cake1.2RC3, MYSQLです。
691nobodyさん:2008/11/20(木) 09:46:38 ID:???
>>690
Doc.count *100 AS Doc.score
じゃなかったっけか
692nobodyさん:2008/11/21(金) 18:42:51 ID:???
すみませんが、質問です。

cake bake で自動生成されるコードのインデントを、TABではなくて半角スペー
ス4つにしたいのですが、それを設定する方法があったら教えていただけないで
しょうか?
693nobodyさん:2008/11/21(金) 18:52:01 ID:???
>>692
scaffoldなら
cake/libs/view/scaffolds のファイルを書き換えたら良かったはず

bake も利用しているかもよ
694693:2008/11/21(金) 19:00:30 ID:???
>>692
cake/libs/templates/views
こっちかも
695nobodyさん:2008/11/21(金) 20:32:03 ID:???
>>633-694
ありがとうございます。自分でももっと調べてみます。
696nobodyさん:2008/11/22(土) 16:36:33 ID:qo4yapkz
auth compornent使いはじめたのですが、
暗号化されたパスワードを復号化する時って、どんなして処理してます?
697nobodyさん:2008/11/22(土) 18:09:23 ID:???
CakePHPのデフォルトってSHA256だろ?
だったら複合化は無理だろ
可逆暗号に変える必要があるが、セキュリティを落としてまで複合化する必要性ってなんだ?
698696:2008/11/22(土) 18:25:21 ID:qo4yapkz
>>697
ユーザ自身にパスワードの変更をさせたいのですが、
入力フォームのデフォルトに、復号化した値を入れたいなーと思ったんです。
699nobodyさん:2008/11/22(土) 21:10:29 ID:???
すみません、細かい質問なのですが、
controller.php のソースで、
$this->{$this->modelClass}
という記述がよく見つかります。

これは何をしているのでしょう?

そもそも、$this->{何か} という記述がどのような動作になるのか、わかりま
せん。教えていただけないでしょうか?
700nobodyさん:2008/11/22(土) 21:13:10 ID:???
ちょっと補足します。
$this->プロパティ名 なら、どういう動作かはもちろんわかります。
$this->{何か評価される式} というのが、どういう振る舞いをするのかわから
ないのです。

ためしにこんなことをしてみましたが、エラーになりました。
$x = "hoge";
$this->{$x}; // エラー
701nobodyさん:2008/11/22(土) 21:19:42 ID:???
マニュアルくらい読んでからやろうよ
702nobodyさん:2008/11/22(土) 21:31:35 ID:???
>>701
マニュアルとは、PHPマニュアルのことでしょうか?
一応見たのですが、該当箇所がわかりませんでした。
http://search.net-newbie.com/php/language.oop5.html

ちなみにさっきの件は、少し不正確でした。$this だとうまく行きますが、そ
れを代入した変数だとうまく行きません。


class Test {
 ; ;var $hoge = 1;
 ; ;function fuga() {
 ; ; ; ;$x = "hoge";
 ; ; ; ;var_dump($this->$x);
 ; ;}
}
$test = new Test();
$test->fuga(); // int(1)

var_dump($test->"hoge"); // error

$thisだけ、プロパティ名自体を変数にできるようです。
703nobodyさん:2008/11/22(土) 21:32:18 ID:???
あ、余計な ; が入ってしまった…。
704nobodyさん:2008/11/22(土) 21:32:34 ID:???
単なる可変変数です
705nobodyさん:2008/11/22(土) 21:38:19 ID:???
>>704
可変変数って、$$x という風に、$が多重になっているものだと思うのですが…。
http://search.net-newbie.com/php/language.variables.variable.html

>>702のコードには、$$ は一つもありません。
706nobodyさん:2008/11/22(土) 21:42:30 ID:???
$this->{$this->modelClass}
あるじゃん
707nobodyさん:2008/11/22(土) 21:49:23 ID:???
>>706
??すみませんが、おっしゃることがわかりません。
grep "$$" で一行も返ってこないのですが、それでも可変変数なのですか?

そして、もし単なる可変変数なのなら、

class Test {
  var $hoge = 1;
  function fuga() {
    $x = "hoge";
    var_dump($this->$x); //これはOK。
  }
}
$test = new Test();
$test->fuga();
$x = "hoge"
var_dump($test->$x); // これはNG.

こうなるのはなぜなのでしょう?
708nobodyさん:2008/11/22(土) 21:52:16 ID:???
{$this->modelClass}

この部分が可変なんだろ
709nobodyさん:2008/11/22(土) 22:04:46 ID:???
$$が書いてあれば可変か
字面しか理解できない阿呆の典型だな
710nobodyさん:2008/11/22(土) 22:22:44 ID:???
http://jp.php.net/manual/ja/language.variables.variable.php
ここのnote欄に、膨大な試行錯誤が見つかりました。
可変変数には、undocumentedな振る舞いがたくさんあるようです。
どうやらこれが答えですね。

こういうundocumentedな挙動って、いつ廃止されるかわからないものでしょう
に、フレームワークに利用するとはすごい話だと思うんですが、考えてみたら
documentedな関数の振る舞いもPHPはしょっちゅう変わるんでしたっけ。
711nobodyさん:2008/11/22(土) 22:25:32 ID:???
うちらに聞かれても
712nobodyさん:2008/11/22(土) 23:27:45 ID:???
>>707
書き方も間違ってるし変数のスコープが分かってない。

コンストラクタやセッター的なもので
オブジェクトから見える場所に代入してないんだから
fugaメソッドを呼ぶまで、testインスタンスの中からは$xは見えない。
713nobodyさん:2008/11/22(土) 23:46:37 ID:???
初心者さんかもしれないけど、OKとNGだけでなく
何のエラーが出るのか、そのエラーは何が原因なのか、そのエラーの解決方法は何か
って辿っていくのがプログラミングのコツだよ
714nobodyさん:2008/11/23(日) 03:34:16 ID:???
>>698
何も入力してなかったら変更しない
してあったらそれに変更だろJK
715696:2008/11/23(日) 04:48:20 ID:l1Rm9lxO
>>714
うーん、まぁそうですね。
しかしAuth compornent使うと、パスワード一覧表とか表示するのも結構大変てことなんすかね
716nobodyさん:2008/11/23(日) 05:06:33 ID:???
どんだけセキュリティポリシー甘いんだよお前の会社は
717nobodyさん:2008/11/23(日) 06:16:38 ID:???
paginateでcurrent_date以前の物だけ表示みたいのってどうやるのかな?

array('hogehoge' => current_date)
array('hogehoge' => '日付')

みたいな感じだと `hogehoge` = `日付` みたいにしかならないよね?
current_dateはともかく日付指定でも不等号条件は使えないのかな?
718696:2008/11/23(日) 06:19:23 ID:???
>>716
いえ、仕事じゃないです。ていうか、このレベルでphpの仕事出来ないかと…
でもあれですね、こういうことは普通しないってことは解りましたです。

もし、やりたいなら入力時に別のカラムに生のパスワード入れる方法を思いつきましたので、
そうすることにします。皆さんお相手くださってありがとうございました。
719nobodyさん:2008/11/23(日) 06:47:23 ID:???
>>717
array('hogehoge <=' => current_date)
720nobodyさん:2008/11/23(日) 07:45:49 ID:???
>>719
ズバリです
ありがとうございます

('hogehoge' => '<= current_date')

とか最初やってて悩んじゃいました
721nobodyさん:2008/11/23(日) 12:17:59 ID:???
>>718
AuthComponentは、暗号化の方法を変えられるよ。
もし(セキュリティ的に問題なくて)、パスワードを可逆にしたいなら。
ttp://d.hatena.ne.jp/ngtn/20080311/1205245777
722nobodyさん:2008/11/23(日) 12:39:53 ID:???
質問です。

Controller::paginate() の第一引数 $object が与えられなかった場合、
paginate()の戻り値は、controllerのデフォルトのmodelのインスタンスになる
と思うのですが、それって公式なドキュメントのどこに書いてあるのでしょうか?

APIドキュメントには、$object = null, と書いてあるだけで、実際nullだった場合の
paginate() の挙動については書かれていません。
http://api.cakephp.org/class_controller.html#6f79c1eed018894aede112c294087345
723nobodyさん:2008/11/23(日) 12:54:38 ID:???
>>722
ソースはそうなってるね。
00882 } elseif (empty($object) || $object == null) {
00883 if (isset($this->{$this->modelClass})) {
00884 $object = $this->{$this->modelClass};
ドキュメントが必要?
724nobodyさん:2008/11/23(日) 13:28:06 ID:???
>>723
やっぱりソースを読むしかないのでしょうか?

> ドキュメントが必要?
あってほしいですね。ドキュメントに載ってない機能って、いつ廃止変更され
るかわからないから。

725nobodyさん:2008/11/23(日) 17:29:12 ID:???
ソースコード見れば、すぐにわかるんだから
詳細なドキュメントあってもなあ
該当記事を探すのに時間かかるし、英語だら翻訳とか余計手間だ

726nobodyさん:2008/11/23(日) 17:30:39 ID:???
>>712
> >>707
> 書き方も間違ってるし変数のスコープが分かってない。
>
> コンストラクタやセッター的なもので
> オブジェクトから見える場所に代入してないんだから
> fugaメソッドを呼ぶまで、testインスタンスの中からは$xは見えない。

別に間違っていないと思うのですが。

最終行の$xは、その一行前で定義されたグローバル変数です。
function fuga() の中で定義されているローカル変数とは
別のものです。

$y = "hoge"
var_dump($test->$y); // これはNG.

変数名を変えたら紛らわしくなかったかもしれません。
727nobodyさん:2008/11/23(日) 17:34:04 ID:???
>>726
クラスの初歩的な質問なら、スレが違う気がする。。。
728nobodyさん:2008/11/23(日) 17:35:34 ID:???
>>724
ドキュメントに載っていようが、RCの場合は変更されてもしょうがない。(事実findをはじめ変更多々あり)
paginateは、もう変更は無いだろうが
729nobodyさん:2008/11/23(日) 17:37:43 ID:???
>>726
該当と思われるスレ

【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/

PHPでOOP
http://pc11.2ch.net/test/read.cgi/php/1172205352/
730nobodyさん:2008/11/23(日) 17:44:50 ID:???
>>712氏への反論なのでここに書いたのですが、
確かにスレ違いなので、こちらに移りましょう。

【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
731nobodyさん:2008/11/23(日) 17:44:59 ID:???
fuga内の$xはfugaの単なるローカル変数。Testのメンバ変数ではない。
732nobodyさん:2008/11/23(日) 17:51:46 ID:???
>>731
それはわかってますし、>>726でも「ローカル変数」って書いてます。
取り合えず>>730のスレにお越しください。
733nobodyさん:2008/11/23(日) 18:08:06 ID:???
喧嘩がしたかったようだね('A`)
734nobodyさん:2008/11/23(日) 18:12:23 ID:???
わざと喧嘩腰でデタラメ書いて、
顔真っ赤にした人が正解を書くのを釣るタイプ。

このタイプはもう飽きたよ。
735nobodyさん:2008/11/23(日) 18:12:48 ID:???
>>733
> 喧嘩がしたかったようだね('A`)

なんでそうなるのかぜんぜん理解できない。
誤解を訂正して誘導しただけじゃん。
736nobodyさん:2008/11/23(日) 18:14:32 ID:???
>>734
ぜんぜん釣りじゃないよ。
どこがデタラメなのか真剣に知りたいんだけど。
737nobodyさん:2008/11/24(月) 17:47:59 ID:V2OhDKFB
Cakeで開発されたアプリをUMLのシーケンス図などで記述するとどのように
書けるのか、サンプルをご存知のかたいませんか??
738nobodyさん:2008/11/24(月) 18:21:36 ID:???
CakeというかMVCモデルでさがしたほうがいいよ。
739nobodyさん:2008/11/24(月) 23:29:29 ID:???
シーケンス図なら考えるまでもないような気がしないでもない
740nobodyさん:2008/11/26(水) 15:03:25 ID:???
画像フォルダをアプリ毎に分けたくて、下記の様な構成でimgフォルダの下にフォルダを切ってファイルを置きました。
/cake/app/webroot/img/hoge/icon/aaa.gif

Viewではヘルパーを使って、$html->image('hoge/icon/aaa.gif', array('border' => 0))として呼んでいます。

これをPHP4が乗っているサーバー上で実行すると、画像が表示されず、
ソースを見てイメージタグのsrcに指定されているアドレスを直接叩くと下記のエラーが出てしまいます。
Missing Controller
Error: ImgController could not be found.

また元々/cake/app/webroot/img/にあった、cake.power.gifは正常に画像が表示され、
イメージタグのソースに表示されているアドレスを直接叩いても画像が表示されています。

ローカル環境では事情によりPHP5を使用しているのですが、こちらでは正常に表示されています。
PHP4だとこの画像管理方法は出来ないのでしょうか?それとも設定でしょうか?
741740:2008/11/26(水) 15:17:25 ID:???
書き忘れ。cakephpは1.2.0.7692 RC3です。
742nobodyさん:2008/11/26(水) 16:03:06 ID:???
>>740
htaccess は、正常に動作しているの?
webroot/img が存在するなら、index.phpに飛ばない(missing controllerにならない)

php4だと/img 以下にディレクトリを作れないということはないね。少なくとも
743nobodyさん:2008/11/26(水) 16:09:19 ID:???
>>740
追加
webroot/hoge が存在していなくても、missing controller にはなる
(ディレクトリ名のtypoとかも、あやしいかな)
744nobodyさん:2008/11/26(水) 16:10:13 ID:???
ごめん
webroot/img/hogeだった
745740:2008/11/26(水) 16:30:50 ID:???
>>742
htaccessは正常に動作していると思っています。
理由は、http://www.hogehoge.ne.jp/php/cake/img/cake.power.gif
だと正常にアクセス出来ているからです。
これをhttp://www.hogehoge.ne.jp/php/cake/img/board/icon/aaa.gif
にすると、Missing Controllerになるので、違う原因だと考えていました。

この考え方自体が変ですかね・・・。

.htaccessは元のファイルに下記の様にRewriteBaseを追加しています。
cake直下 RewriteBase /php/cake
cake/app直下 RewriteBase    /php/cake/app
cake/app/webroot直下 RewriteBase /php/cake/app/webroot

dispatchがPHP4だとうまく動かないのかと考えていましたが違うみたいですね。

後、typoはローカルで動作しているファイルを全てアップロードしているので無いと思います。
実際にFTPで確認しても間違ってなさそうでした。
746740:2008/11/26(水) 16:46:48 ID:???
すいません。分かりました。
ファイル名が全角なのがダメみたいでした。

$form->selectに画像入れたフォルダ配下のファイル名から拡張子を除いた物を表示させて
アイコンを選択させようと手抜きをしたのがダメでした。

ローカルで出来たのはWindowsだからですかね。(サーバーはLinux)
747nobodyさん:2008/11/26(水) 16:51:43 ID:???
>>745
やっぱりhtaccessっぽいね。
webroot直下のやつを見直すと幸せになれそうな気がする

RewriteBaseは必要なのかい?
748740:2008/11/26(水) 17:36:45 ID:???
>>747
ありがとうございます。
調べてみて、webroot直下のhtaccessに、下記を追加することで、「Missing Controller」は出なくなりました。(404エラーになります)
RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$

原因はやっぱり日本語ファイル名で、これをffftpでアップロードしていたことだと思います。
UTF-8対応版のftpクライアントでアップロードすることで、正常にアクセス出来る様になりました。

RewriteBaseはググってみて、共有サーバーで使用する時の設定に書かれていたので無いとダメなのかと思って入れています。
749nobodyさん:2008/11/26(水) 19:22:08 ID:???
cakePHP1.1使ってるんですけど、
debugモードを0にしたらセッションが切れる!みたいな
現象に出くわした方っています?
750nobodyさん:2008/11/26(水) 21:58:19 ID:???
751749:2008/11/26(水) 22:15:23 ID:???
>>750
情報ありがとうございます。
うーん、securityはmediumでやってるんですよねぇ。なんなんだろう・・。
752nobodyさん:2008/11/27(木) 12:33:29 ID:???
>>751
セッションが切れるという症状を詳しく
753nobodyさん:2008/11/27(木) 23:19:45 ID:???
cakePHP を使いはじめたところで、さっそくどうしていいかわからなくて
困ってしまったんですが、

css を webroot/css 配下においた時、views/layouts/default.ctp で その css を読み込ませたい
のですが、これはヘルパを使うべきですか?

<link href="css/base.css" rel="stylesheet" type="text/css" />

こんな感じで直書きしてもよんでこないのですが、これは /css/base.css のように絶対パスで
書くべきなのか、ヘルパをかますべきなのか、はたまた何か設定がまずいのが
よくわかっていません。

アドバイスをお願いします。
754nobodyさん:2008/11/28(金) 00:28:08 ID:dURk+lTo
>753
>これは /css/base.css のように絶対パスで
試してみた?おそらく結果でわかるはず。

また、ヘルパ使うかどうかはどっちでもいいような。 個人的にはヘルパ使うけど。
755nobodyさん:2008/11/28(金) 02:37:47 ID:???
いつ1.2は製品版になるん?
756nobodyさん:2008/11/28(金) 03:12:08 ID:8hLcD3C8
1.1と、1.2の実行速度ってどう?

1.2が遅いので1.1を新規でも使ってる人はいる?
757nobodyさん:2008/11/28(金) 03:16:26 ID:???
1.2の方がはやいんじゃないの?
パフォーマンスの改善がメインでしょ1.2て
758nobodyさん:2008/11/28(金) 03:17:57 ID:???
これから作るところなんだけど
1.2がRCだから1.1つかってる
759nobodyさん:2008/11/28(金) 03:40:07 ID:???
cakephpってバージョンに依存しない確立されたバージョンアップ手順ってあるの?
このバージョンではこうする、とかじゃなくて
常にこうすれば確実にバージョンアップ出来るみたいな
760nobodyさん:2008/11/28(金) 06:36:27 ID:???
1.2の日本語マニュアルだけど
1.1のマニュアルに比べて日本語が変なところが多い
コピーしてきたらいいのにね
761nobodyさん:2008/11/28(金) 14:02:15 ID:???
CakePHPに限った話じゃないかもしれないのですが,
<?php e($html->css('my_css_1')); ?>
<?php e($html->css('my_css_2')); ?>

を出力した場合, HTMLソース上では改行されずに出力されます.
動作に支障はないとはいえ気持ち悪いので, 改行させたいのですが
何かよい方法はないでしょうか?
762nobodyさん:2008/11/28(金) 14:54:05 ID:???
>>761
間に空行を空ける
or
?>の横にTabを入れる
763nobodyさん:2008/11/28(金) 16:02:50 ID:???
Windows vista に XAMPP をインストールして cakephp の稼動環境を作りました。
1つうまくいかない事がありますのでご教示頂けるとうれしいのです。
mod_rewrite は有効にし、.htaccess も設定しました。

/htdocs/test/ 配下を環境とします。
/htdocs/test/app/webroot/js/ にいくつか javascript を入れました。
/htdocs/test/app/views/layouts/post.ctp を作り、その中で、

<script src="js/hoge/hoge.js" type="text/javascript"></script>

のような記述がしてあります。

次に post という、コントローラ、ビュー、モデルが作ってある状態で、
post_controller.php には var $layout ="post"; としてあります。

ここで、
http://localhost/test/post/ にアクセスすると、apache の accesslog に、

"GET /test/post/js/hoge/hoge.js HTTP/1.1" 200

とログが残ります。

どのように webroot/js/ の中身を参照すればいいでしょうか?
764nobodyさん:2008/11/28(金) 16:12:45 ID:???
>>763
10個前のレスと同じじゃんね。
俺ならヘルパー使うけど。vendorsに突っ込んだJSとかCSSも読んでくれるし。
765nobodyさん:2008/11/28(金) 16:30:47 ID:???
>>763
app/views/layouts/default.ctp を読みましょう。
766763:2008/11/28(金) 16:36:33 ID:???
>>764
そうか、css も javascript も同じ考え方なんですね。10個前のレスが同じ
問題だと理解できていませんでした。

さっそくヘルパーを調べ、使ってみました。意図したように動作しました。
ありがとうございます。

1つ不安な所があるのでちゃんと理解したいと思うのですが、
layouts や elements の中にある .ctp などで、javascript のヘルパーを使った場合、

それを呼び出す全てのコントローラーに、

var $helpers = array('Html', 'Javascript');

の記述を行なう、という事であっていますでしょうか?


767nobodyさん:2008/11/28(金) 17:46:08 ID:???
>>766
app_controller.php に記述すれば全controllerで読み込まれる
'Html'は指定せずとも読み込まれる
768nobodyさん:2008/11/28(金) 23:02:30 ID:???
cakephpってなれてくると vendor 使わないよね。
最初の頃使いまくってたけど最近全然使わなくなった。

その代わりコンポーネントを使うようになってく。
769nobodyさん:2008/11/29(土) 13:54:28 ID:???
そのうち、モデルとビヘイビアが多くなっていくよw
770nobodyさん:2008/11/30(日) 23:56:45 ID:???
1.2RC3

class HogeController extends AppController {
 var $name = 'Hoge';
 var $uses = array("Fuga","Hage");
のようにコントローラと違うモデルを指定して

function index() {
 $this->set('data', $this->paginate("Fuga"));
}
とやるとページングが使えなくなってしまうのは仕様なんでしょうか…
771nobodyさん:2008/12/01(月) 00:30:15 ID:???
訂正
コントローラと同じ名前のモデルでもなる所はなるな…
scaffoldで生成しなおした画面は大丈夫だからもう一回見てみるか
772nobodyさん:2008/12/01(月) 00:51:17 ID:???
自己解決
1ページ内でpaginateを2つ以上やると片方死ぬのね…
773nobodyさん:2008/12/01(月) 15:03:11 ID:uBVWzlfV
webrootに置いたphpファイルに、viewの結果を差し込む方法ってありますか?
別途DBのライブラリ使って直接DBから検索するのが一般的なんですかね
774nobodyさん:2008/12/01(月) 15:38:36 ID:???
>>773
file_get_contents()とかつかえばできるんじゃない?
部分的ならajaxで読み込むとか。
775nobodyさん:2008/12/01(月) 17:08:02 ID:???
>>773
質問の意味が理解できていないかもしれないけど、
Object にある requestAction メソッドはどう?
776nobodyさん:2008/12/01(月) 18:58:54 ID:???
>>773
通常はwebroot直下にオリジナルのphpファイルは置かない。
一般的には、DB読むようなファイルなら、pages以下に持ってくる。
(必要ならURL書き換えれば良いし)
777nobodyさん:2008/12/01(月) 22:26:27 ID:???
>>772
それ、なんだっけ。2つ以上つくれるよ。
実際俺つくったし。やり方忘れた。がんばれ。
778nobodyさん:2008/12/01(月) 23:13:14 ID:???
それ解説してるサイトってないから手順確立したらヒーローになれるな
779nobodyさん:2008/12/02(火) 10:27:07 ID:???
ビヘイビアって実際どうなの?
メール送信ビヘイビアってあるでしょ。
結局コントローラーで qbmailとか使わないといけないからさほど
メリットがないような気が。

英語だけならビヘイビアでいけるだろうが、日本語だからな。
文字化けが。。。

インクリメント・デクリメント以外の便利な使い道を師匠。教えて下さい。
780nobodyさん:2008/12/02(火) 14:29:46 ID:???
cakephpって世界で最も使われてるとか言うけど
結構下火だよね
関連開発しょぼいし
本家すら
781nobodyさん:2008/12/02(火) 14:34:47 ID:???
symfonyとcakephp使ったけど
cakephpはコード生成が弱すぎ
masterbakeやpowerbakeがあるけど本家開発に組み込まれてるわけじゃなく
バージョンアップ追いついて無いし
標準のbakeだとテーブル一つ毎にモデル作れとかフィールド一つ毎にバリデーション指定しろとかやってられん
機能少ない割にsymfonyより遅いし
782nobodyさん:2008/12/02(火) 14:57:00 ID:???
これはものすごい誤認識の方がいらっしゃいました
783nobodyさん:2008/12/02(火) 19:51:38 ID:???
>>781
こういうこと言いに来る時点でCakePHPを評価してるって思われるのにな。
784nobodyさん:2008/12/02(火) 20:15:49 ID:???
例えば新規作成を行なう add と、登録済みデータを修正する edit を
コントローラに用意するとき、view は、add と edit と2つのファイルを用意すると
思います。

ただ、add の時も edit の時も入力項目は同じで、ページ遷移後の状態が、
空白か、呼び出したデータが表示されているか?程度の差しかないような画面の時でも、
add, edit の view は用意しておくものでしょうか?

それとも、add と edit の両方をまかなえる view を作って、コードで処理させるほうが
いいのでしょうか?
785nobodyさん:2008/12/02(火) 20:40:05 ID:???
>>782
「僕すごい事知ってるよ」
じゃなくて具体的な例を出せ

>>783
言いに来てるのは既に仕事で使ってて使わざるを得ないからなのと
こういう事が書かれてれば最初から使わなかったってことだな
786nobodyさん:2008/12/02(火) 21:19:32 ID:???
そういう事は仕事場で提案してみればいいんじゃないかな。
確かに参考にはなるけど。
787nobodyさん:2008/12/02(火) 21:55:16 ID:???
>>784
たぶん1.2からだけど、bakeして吐き出されたviewは、editとaddを共通化している

それを知ってから、すべてのadd.ctpを削除した
admin_edit とかもすべて共通化したら、viewの数が激減してすっきりしたよ
788nobodyさん:2008/12/02(火) 23:36:54 ID:???
symfonyよりCake重いとか
789784:2008/12/02(火) 23:43:37 ID:???
>>787
情報ありがとうございます。1.2 を使っているので早速 bake してみましたが、
add, edit は別にはきだされました…。

1.2.0.7692 なので、最新だと思うのですが…。
790nobodyさん:2008/12/02(火) 23:58:07 ID:???
そういう意味じゃなくてaddとeditで吐き出されてるものはほぼ同じだから
どっちか消してどっちかだけ使えば?って話じゃないの?
791nobodyさん:2008/12/03(水) 01:04:53 ID:WkUpG3Q2
ベロベロベロベロオオオオオオオオオオオ
んんー、ほんのりオシッコの味がするよ!!
792nobodyさん:2008/12/03(水) 01:06:12 ID:???
誤爆った
793nobodyさん:2008/12/03(水) 01:43:34 ID:o3/nvN5X
794nobodyさん:2008/12/03(水) 01:45:36 ID:???
また誤爆った
795nobodyさん:2008/12/03(水) 09:35:31 ID:???
>>789
あれ?そうなの?
と、思ったら、記憶違いでscaffold使ったときのことだったかも
/cake/libs/view/scaffolds にはadd.ctp無かったから(rc3で確認)

でも、どっちか消したほうがオススメなのは確か
$form-> create , input は共通で使えるだろうから
796nobodyさん:2008/12/03(水) 13:24:13 ID:???
cakephpってfkのインデックスの名前にも規約ある?
797nobodyさん:2008/12/03(水) 13:45:22 ID:???
id
798nobodyさん:2008/12/03(水) 13:48:04 ID:???
それはフィールド名じゃなくインデックスの名前もってこと?
799nobodyさん:2008/12/03(水) 14:48:04 ID:???
Error: Database table publishes for model Publish was not found.

このエラーはどういう意味だろう?
bake allで作成したMVCなのにテーブルが見つからないとは。
publishesなんてテーブル作ってないんだけどね。
cakephp使う際にはそういう名前のテーブルを用意しなきゃいけないとか?
800nobodyさん:2008/12/03(水) 14:49:48 ID:???
インデックスをプログラムで管理したいって事か?
インデックスなんてプログラムにとって知った事じゃないだろ
801nobodyさん:2008/12/03(水) 14:50:40 ID:???
>>699
何というコントローラ&メソッド&ビューに対して
どんなURLでアクセスしたか教えたまえ
802nobodyさん:2008/12/03(水) 14:55:18 ID:???
テーブル:Areas
URL:http://localhost/Areas

MVCはbake allで作ってるからテーブル名から正しく生成されてるはず
803nobodyさん:2008/12/03(水) 17:40:54 ID:???
>>802
Publish モデルがあったり、areas_controller.php で $uses = array('Publish') してない?
804nobodyさん:2008/12/03(水) 22:50:50 ID:???
symfonyより重くはないし、コード生成にしても結局実務で使えないのはsymfonyも同じ。
805802:2008/12/04(木) 03:52:30 ID:???
自己解決。
特定の場合に、cake allで生成すると
cakephpが内部で使ってるpublishと言うダミーモデルのデータが残ってしまうらしい。
いくつかモデルを生成した中で、一つだけpublishがはいってしまったものがあった。(Userモデル)
cakephpはデフォルトで全モデルを読み込んでるらしく、どのコントローラにアクセスしようと
publishesテーブルが無いと怒られた。
806nobodyさん:2008/12/04(木) 10:00:01 ID:???
>>805
特定の場合って何だ?
807nobodyさん:2008/12/04(木) 10:09:08 ID:???
そこまでは特定してない
でもcakeのダミーモデルなのは確か
808nobodyさん:2008/12/04(木) 10:42:12 ID:???
教えてほしいことがあるんだけど、いいかな?

2-3個しか入力項目のないフォームがあって、それらの項目に、
hoge, piyo, fuga とか入っているとする。

これを submit したとき、こんなURLに遷移させたい。
http://(base-url)/hoge/piyo/fuga

JavaScriptを使えば簡単だけど、できたらクライアントサイドスクリプトには
依存したくない。

CakePHPに、これを実現するのに便利な仕組みはないんだろうか?
普通に$this->dataからを取得して、implode('/', ...)でつないで redirectす
るしかないのかしら?
809nobodyさん:2008/12/04(木) 10:46:31 ID:???
そんな小さなことまでフレームワークでサポートしたらキリがない
810nobodyさん:2008/12/04(木) 10:46:48 ID:???
>>808
mod_rewrite は?
811nobodyさん:2008/12/04(木) 11:10:30 ID:???
>>809
まあそうなんだけど、もし元々あるんなら利用したいと思って。

>>810
え? mod_rewrite って、
base-url/hoge/piyo -> base-url/index.php?param0=hoge¶m1=piyo
という変換だけじゃなくて、
base-url/index.php?param0=hoge¶m1=piyo -> base-url/hoge/piyo
こっちもできるの?
812nobodyさん:2008/12/04(木) 13:22:38 ID:???
正規表現使えばどんなパターンの差し当てでも出来るけど
813nobodyさん:2008/12/04(木) 14:33:53 ID:???
そういうことかー。しかしこういう黒魔術に深入りするのは避けたい。

Apache module mod_rewrite
http://www.net-newbie.com/trans/mod_rewrite.html
> 膨大な設定例やドキュメントがあるにもかかわらず、 mod_rewrite は黒魔
> 術である。かなりイケてるっぽい黒魔術だが、 やっぱり所詮は黒魔術である。
> -- Brian Moore

つうかCake関係ないな。すんません。
814nobodyさん:2008/12/04(木) 14:45:09 ID:???
汎用的なリダイレクトページ作ったら良い
815nobodyさん:2008/12/04(木) 18:08:36 ID:???
cakephpのモデルはアソシエーションをクラスメンバに定義するから
変数・グローバル変数をアソシエーションの定義に使えないよね?
この問題はどう解決すればいい?
816nobodyさん:2008/12/04(木) 19:08:19 ID:???
多対多のjoinテーブルで
両方のテーブルのフィールドを条件にして片方のテーブルのレコードを抽出したい場合、どうすれば良いですか?
つまりjoinテーブルでつながれた相手側のテーブルのフィールドで自分のレコードを絞り込むと言う事です。
817816:2008/12/04(木) 19:11:19 ID:???
cakeの機能を使って抽出する場合です
SQLを書くしかありませんか?
818nobodyさん:2008/12/04(木) 19:40:46 ID:???
>>813
そんなこといったらcakeだって黒魔術(シェア的にww
819nobodyさん:2008/12/04(木) 22:21:39 ID:???
>>813
routeの設定でいけるんじゃね?
http://cakephp.jp/doc/ch04s03.html#id4799268
820nobodyさん:2008/12/04(木) 23:20:13 ID:???
すみませんが、paginatorの設定について教えてください。

http://domain/controller/action/hoge/fuga
みたいな、actionに渡すパラメータが二つ(hoge, fuga)あるページがあります。
これを paginator でめくれるようにしたいのです。

ところがビューのpaginatorヘルパーは、最初の hoge までしか認識してくれな
いようで、生成されたURLは
http://domain/controller/action/hoge/page:1
みたいになってしまいます。(hogeだけが残り、fugaが消えている)

hoge, fuga両方とも paginatorに認識させる設定はないでしょうか?
821nobodyさん:2008/12/05(金) 05:38:33 ID:???
コントローラよりモデルを厚くしたほうがいいっていうけど
それってアソシエーションをモデルにまとめる以外になんかあるの?
822nobodyさん:2008/12/05(金) 09:07:44 ID:???
>>821
これなんてほぼモデルに書いてるよ。
http://www.hideblog.net/nikkis/show/99

コントローラーをプログラムの流れだけといった感じにすると
デバッグも楽だし、何しろ仕様変更の時も対応しやすい。
823nobodyさん:2008/12/05(金) 11:11:35 ID:???
cakephpのモデルに合わせて書いてると
SQLが分割されて遅くならない?
完全に柔軟にテーブル結合とかやれるわけじゃないし
824nobodyさん:2008/12/05(金) 13:36:35 ID:???
今まさに>>823が気になってたんだけどさ。
逆に下手にjoinせずにクエリー投げたほうが、キャッシュが働いてパフォーマンスが良くなったりしてるんじゃないかと。
「Cakeのデフォルトで充分じゃね?」みたいなこと調べた人いないかな?
825nobodyさん:2008/12/05(金) 13:47:18 ID:???
さすがにそれはない
普通、1クエリにまとめた方が速くなる
826nobodyさん:2008/12/05(金) 13:56:12 ID:???
更新の少ないテーブルの場合、ほぼノータイムで返ってきてることが多い
そういう場合、SQLの種類を増やすより、パフォーマンスが良くなるっていう話を聞くよね
827nobodyさん:2008/12/05(金) 17:34:18 ID:???
cakephp 1.2 を使っています。
バリデーションでエラーになった入力項目(テキストボックス)の
背景色を変更するのによい方法はないでしょうか?
828nobodyさん:2008/12/05(金) 18:18:49 ID:???
>>827
$form->inputで記述すれば、あとは、CSSで対応できると思うけど
829nobodyさん:2008/12/05(金) 18:31:39 ID:???
>>828 ありがとうございます。

バリデーションでエラーになった項目の $form->input で class を指定する、という事
でしょうか?

その場合、バリデーションでエラーになった場合、
その $form-input 項目の css を変更するにはどうしたらいいのでしょう?

何かよい方法があるのでしょうか?


830nobodyさん:2008/12/05(金) 19:00:08 ID:???
>>829
たとえばUser.usernameがvalidation errorの場合、以下のようになる
<div class="input text error">
<label for="UserUsername">ID</label>
<input name="data[User][username]" id="UserUsername" class="form-error" />
<div class="error-message">入力内容を確認してください</div>
</div>
なので、/webroot/css/cake.generic.cssの以下を修正する
.error
.form-error
.error-message

inputの背景色なら
input.form-error { background-color : red } って感じかな
831nobodyさん:2008/12/05(金) 19:10:47 ID:???
唐突ですけど、皆さんにお聞きしたいことがあります。
FORMヘルパーって、DBテーブルと関係の無いフォームを作ることってできます
か?それともそういうのを作るためなら、ただのHTMLを書いたほうが良いので
しょうか?
832nobodyさん:2008/12/05(金) 19:50:33 ID:???
>>830
丁寧にありがとうございます。

バリデーション後の画面にて、class="form-error" が自動で付いている事に
全く気付いていませんでした…。

希望の画面になりました、ありがとうございました。
833nobodyさん:2008/12/05(金) 20:29:18 ID:???
>>831
モデルのところにnull入れてやったらいいんじゃない?
<?php echo $form->text(null, array()); ?>

デフォルトのname属性で足りないなら上書きできる
<?php echo $form->text(null, array('name' => 'title')); ?>

ヘルパのおいしいところを享受できるかはわからん
834nobodyさん:2008/12/05(金) 21:02:40 ID:???
バリデーションのルールで

1. var $validate = array(
2. 'login' => array(
3. 'rule' => array('minLength', '8'),
4. 'message' => 'ユーザ名は8文字以上にしてください。'
5. )
6. );



4. 'message' => 'ユーザ名は8文字以上にしてください。'

の 8 の部分を、\config\const.php などに定義してある値でおきかえたいのですが

class Post extends AppModel
{
var $name = 'Posts';

var $validate = array (

のように、クラスのインスタンス変数で定義?するためか、文字列の結合がエラーになって
できなくて困ってますが、対応できる方法はありますか?
835nobodyさん:2008/12/05(金) 21:19:03 ID:???
listが予約語になっててアクションに使えない罠
836nobodyさん:2008/12/05(金) 21:24:02 ID:???
レコードの一覧出すアクションの名前なんにしたらいい?
/コントローラ/
でアクセスする場合、引数って渡せないよね?
837nobodyさん:2008/12/05(金) 21:54:29 ID:???
>>834
貼付けられたソースが切れてるのでよくわかりませんが、
そのケースではクラス定数を使った方がベターだと思います

>>836
ルーティングの設定によりますが、アクションのindexが省略されてるんだと思うんですが・・・
838nobodyさん:2008/12/05(金) 21:56:38 ID:???
省略されてるとして、
本来indexに続けて書くはずの引数をルートから書いても
アクションだと思われて正しく動作しないよね
ルーティング設定で正規表現書けば出来るんだろうけど
839nobodyさん:2008/12/05(金) 22:04:42 ID:???
>>837
ありがとうございます。

ごめんなさい、切れてるソースの部分は、

var $validate = array(
'login' => array(
'rule' => array('minLength', USERNAME_MAX_LENGTH),
'message' => 'ユーザ名は' . USERNAME_MAX_LENGTH . '文字以上にしてください。'
)
);

こんな感じにしたいんです。

で、USERNAME_MAX_LENGTH は別途 define してあります。

クラス定数にすると、他で使いまわせないのですが、あきらめるしかないでしょうか?
840nobodyさん:2008/12/06(土) 00:12:44 ID:???
>>838
/controller/?hoge=hage
こんなんどうよwww

>>839
ん?クラス定数だと使い回せないのはなぜ?
むしろグローバルに宣言しちゃった方がライブラリ化して使い回すときに不便だと思うんだけど
841nobodyさん:2008/12/06(土) 01:05:12 ID:???
>>840
例えば、モデル内で定義するバリデーションのメッセージとして、
「既に登録されています」というメッセージは、どのモデル、ビューかに関わらず
サイト内で一意にしたいわけです。

これを、モデルのクラス定数に定義するという事は、存在しているモデルの数だけ、
同様の「既に登録されています」を定義しなければならないわけで。

こういったサイト全体で一意としたいメッセージ的な文字列は、クラス定数よりは
グローバル定数で定義しちゃいたい、と思うのですが、よろしくないでしょうか?
842nobodyさん:2008/12/06(土) 01:20:59 ID:???
つ継承
つconfigクラス
ついっそ後で置き換え
843nobodyさん:2008/12/06(土) 05:40:38 ID:???
メッセージテーブル作るならgettext使ってみては?
railsでしか使ったことないけど、phpでgettextはあんまり情報ないなー
http://codezine.jp/article/detail/3040
http://labs.unoh.net/2007/10/symfony-i18n-with-gettext.html

844nobodyさん:2008/12/06(土) 06:37:03 ID:???
>>841
共通といったって、そんな短い単語を共通化してどうすんの?
世界を視野に入れたプログラム作ってるの?
845nobodyさん:2008/12/06(土) 06:40:34 ID:???
>>841
マスタテーブル作れば良いじゃん
大量のグローバル定数であふれる事は避けるべき
846nobodyさん:2008/12/06(土) 08:42:06 ID:???
CakePHP というか、MVC の考え方がいまいちよくわかってない気がするんですが、
アドバイスをお願いできれば…。

User テーブルがあります。ここは、ログインID と、名前、パスワードがあります。

で、その User テーブルの追加/編集/削除ができるように、UsersController, add/edit ビュー、モデルを
作成しました。

これで、Users テーブルへの追加、削除はできるようになりました。

次に、この Users テーブルの内容に基づいてログインするページを作りたいと思います。

その、ログインを管理するコードというのは、別途コントローラを作成するほうがいいのか、
それとも Users テーブルへのアクセス、という事で、作成済の、UsersControlle や、モデルに
ログインするためのコードを追加するのか、どうすべきなのでしょうか?

同じテーブルへのアクセスでも目的が違う場合は、コントローラも別途作成するものなのか、
それとも、テーブルを主体にコントローラ、モデルをふくらませるべきなのか、
混乱しています。

このあたりアドバイスを頂けるととてもうれしいです。
847nobodyさん:2008/12/06(土) 10:08:35 ID:???
>>846
http://book.cakephp.org/ja/view/172/%E8%AA%8D%E8%A8%BC
ここら辺みてみるのが良いと思う。
よっぽどの事がない限りはこれで大丈夫じゃないかな
848nobodyさん:2008/12/06(土) 18:17:57 ID:???
質問

聞いた話だが、cakeって、月500円レベルのレンタルサーバーでも
十分、実用的なスピードで動くんだよね?
849nobodyさん:2008/12/06(土) 18:21:01 ID:???
なんとも答えられない
WEBアプリフレームワークとしては重たい部類
WEBアプリフレームワーク自体は今のコンピュータにとって大した重量じゃない
850nobodyさん:2008/12/06(土) 18:27:41 ID:???
値段=スペックじゃないので何とも言えないけど
その500円ってのがさくらのスタンダードなら問題ない
851nobodyさん:2008/12/07(日) 10:07:09 ID:???
以前PHP4でWebアプリを書いてました。
3年ぶりにPHPでWebアプリを書く事になったのですが、フレームワークが便利になって
ました。これからはCakePHP1.2を利用しようと考えて開発環境のインストールの所から
書籍を購入して進めようと考えてます。
皆さん、どちらの書籍をお勧めですか?
(自分のPCは現在LAMP環境も削除してしまってます。)
1.CakePHPガイドブック(CakePHP1.1 安藤、新原、堂園 07/10/25)
2.CakePHP徹底入門(CakePHP1.2 イージーゲート 08/8/29)

verが1.1ですがCakePHPガイドブックの方が評判が良さそうです。こちらで良いでしょうか?
また、他に良い書籍がありますでしょうか?よろしくお願いします。
852nobodyさん:2008/12/07(日) 10:52:40 ID:???
どっちも微妙

http://www.garacter.com/
こことハンドブックとポケリファ使って勉強してます
853nobodyさん:2008/12/07(日) 11:20:32 ID:???
>>848
今普通に1.2で作ったサイトを運営してるけど別に問題ないよ
(さくらスタンダード)

>>852
同感。ある程度理解できたらさっさとポケットリファレンスに移行したほうがいいね
854nobodyさん:2008/12/07(日) 11:42:22 ID:???
>>852 >>853
コメントありがとうございます。
どちらも微妙ですか。
それなら、ver1.2で説明してある「CakePHP徹底入門」にしようかな。
(フラフラしてて、いいのかなあ?)

インストールが出来、基本的な使い方が理解できたら
「CakePHPポケットリファレンス」Webページ情報の活用へ移行なのですね。
855nobodyさん:2008/12/07(日) 13:14:19 ID:???
公式のマニュアルとポケットリファレンスだけあれば十分。
翻訳の方乙であります!
856nobodyさん:2008/12/07(日) 13:40:53 ID:???
Web情報だけで十分、書籍なんて必要ないという意見もわかるけど
新開発環境の入門時に書籍を活用するのは、効率よく体系的に入門できるのでお勧め
お金に余裕がある人は、人気の入門書籍による入門を勧める。
857nobodyさん:2008/12/07(日) 13:47:18 ID:???
×お金に余裕がある人は、
ではなく○時間に余裕のない人は、 だな。
858nobodyさん:2008/12/07(日) 20:42:33 ID:???
まぁ、自分は一通りよんだね。
cakephpは全部読破。
お金がなくても自分への投資だからちょっとくらい奮発しても
いいかもね。
859nobodyさん:2008/12/07(日) 20:45:28 ID:???
公式ドキュメントのPDF版が欲しい。
あれ印刷してまとめれば立派な本だよ
860nobodyさん:2008/12/07(日) 21:01:21 ID:???
>>858さん、 >>851です。
1.CakePHPガイドブック(CakePHP1.1 安藤、新原、堂園 07/10/25)
2.CakePHP徹底入門(CakePHP1.2 イージーゲート 08/8/29)
のそれぞれの特徴をお知らせ頂けると助かります。
また、>>858さんのお勧めがあれば、よろしくお願いします。
ちなみに「CakePHPポケットリファレンス」は購入の予定です。
861nobodyさん:2008/12/07(日) 22:03:18 ID:???
イライラ
862nobodyさん:2008/12/07(日) 22:23:30 ID:???
イライラすんなよ。どうせ上司から本買ってもいいけど、ムダ使いは許さん。
と厳しく言われてんだろう。わかってやれよ。
863nobodyさん:2008/12/07(日) 22:50:18 ID:???
初心者のうちは片っ端から買うしかないよ。
昼飯何回か我慢すれば買えるでしょ。
864nobodyさん:2008/12/07(日) 22:58:55 ID:???
CakePHP1.2の公式マニュアルのPDFって
どこだっけ?

いや、まだ作りかけなんだろうってのはわかるけど
1.2の前の作りかけバージョンの印刷物があってね。
そのPDF版をとっておきたいなと。
865nobodyさん:2008/12/08(月) 00:02:09 ID:???
あるコントローラで値が決定し、その値は、別のコントローラや、ビュー、エレメントで使われる可能性がある
グローバル的な値の場合、セッションに入れるのが定石でしょうか?

CakePHP でそういったグローバル変数的な値を管理するのに勧められる方法があれば
教えてください。
866nobodyさん:2008/12/08(月) 10:56:58 ID:???
>>865
俺なら、コンポーネントにしまい込む
ビューへ渡すときは、コントローラ経由で
867851:2008/12/08(月) 16:16:15 ID:???
>>860
おすすめは無いよ。とにかく全部読むといい。
あとは、作って作って・・・慣れだな。
868nobodyさん:2008/12/08(月) 16:26:31 ID:???
同意。慣れ、重要。
何か作れば、そのうち、cake流のやり方が身につく。
最初は大変だけど、慣れれば楽しくなってくる。
869nobodyさん:2008/12/08(月) 17:07:00 ID:???
cakephpってsubmitの値送られないのなんで?
870nobodyさん:2008/12/08(月) 17:07:56 ID:???
俺はマニュアルとAPIと行ったり来たりして覚えたな。いや覚えたっつうかずっと行ったり来たりだけど。
マニュアルもかなり充実してていいけど、
APIの方見たら、ああこんなメソッドもあったのかみたいなのもあるし、なによりcakeの全てが出てるわけだし。
871nobodyさん:2008/12/08(月) 17:12:43 ID:???
1.2で$form->submit('hoge',array('name'=>'aaa','value'=>'bbb');
とか書いて押してみても、submitの値が送信されてないんだけど。
872nobodyさん:2008/12/08(月) 17:20:06 ID:???
>>871
array('name'=>'data[aaa]',value='bbb')
で行けると思うけど。
873nobodyさん:2008/12/08(月) 17:58:48 ID:???
できたありがとう
dataなんてつけるんだ
マニュアル見ても見つからなかった
874nobodyさん:2008/12/08(月) 19:02:10 ID:???
確認画面とかのビューで、アソシエーションが定義された別モデルのデータを簡単に取得する方法ってある?
コントローラでデータ自体のセットはbakeがデフォルトで出力してくれるからいいけど。
ビューでforeachで探すしかないかな?
APIでidとモデル名入力する感じで取得したいんだけど

マニュアルもAPIリファレンスも落ちてるみたいだし
875nobodyさん:2008/12/09(火) 17:29:11 ID:???
パスワードとかメールアドレスの確認入力みたいな
二つのフィールドのデータが同じかどうかをチェックする組み込みバリデーションルールってないんだね
なんでだろ
簡単なやり方ってあるの?
876nobodyさん:2008/12/09(火) 17:49:15 ID:???
>>875
さくっと自作できるから
877nobodyさん:2008/12/09(火) 17:50:50 ID:???
alphaNumericってほとんど正常に動作してなくない?
全角通ったり半角しかないのにエラーでたり
878nobodyさん:2008/12/09(火) 17:53:17 ID:???
>>876
モデルに定義出来る?
879nobodyさん:2008/12/09(火) 18:18:45 ID:???
CakePHPを触ってみているものです。

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

をver 1.2 RC3で実行しようとしています。
http://〜〜/10min_bookmark/
という形でアクセスし、初期画面は表示され、DBの設定もしました。
その後、
app/models/item.php をつくり、
app/views/Items ディレクトリを作り、
app/controllers/items_controller.php を作り、
それぞれを動画通り記述したのですが、

DBの設定前などから現れていた以下のような画面しか出ません。

Release Notes for CakePHP 1.2.0.7692 RC3.
Read the release notes and get the latest version
 :

ver 1.2ではこの他にしないといけないことがあるのでしょうか?
880nobodyさん:2008/12/09(火) 18:20:30 ID:???
http://〜〜/10min_bookmark/items
ここへいけ

app/config/route.php
これを編集しろ
てかマニュアル読め
881nobodyさん:2008/12/10(水) 12:44:02 ID:???
cookieコンポーネント使って無くても
1度ログインするとブラウザ落としてまたアクセスしても認証状態が保たれてるんだけど
なんでだろう?
1.2
882nobodyさん:2008/12/10(水) 13:40:53 ID:???
Security.levelは?
883nobodyさん:2008/12/10(水) 13:51:31 ID:???
lowになってた
highにしたら出来た
ありがとう
884nobodyさん:2008/12/12(金) 01:20:56 ID:???
Security.levelがhighだと、
ページアクセス→サーバー側でセッションID変更→ページ読む前に停止
→サーバーから送られてきた新しいセッションIDを受け取らない
→セッションが保たれない。
って問題が昔あったけど、これ改善された? 仕様といえば仕様であるが、
ページ読み込み連打するってことよくあるだろう?
885nobodyさん:2008/12/12(金) 04:11:49 ID:???
いま試したらログイン画面に飛ばされた;
こりゃhighは使い物にならんな。
886nobodyさん:2008/12/12(金) 13:15:34 ID:???
sqlite3対応はどうなってますか?
887nobodyさん:2008/12/12(金) 13:43:18 ID:???
なんとなく全体を理解するのにはガイドブックがいいんじゃないの。
1.1で覚えたなら1.2での違いはポケットリファレンスなりネットなりを見ればすぐ理解できる。

アマゾンにもそこそこレビューついてるから自分に近い感性の人が勧めているのを選んでもいい。
888nobodyさん:2008/12/12(金) 19:13:28 ID:???
アクセスするパスの構造なんですが、業務系アプリのような場合、
マスタ保守系、入力系、問い合わせ系のような分類でパスをかえたいんですが、
CakePHP では、そういう分類をもたせる事はできないでしょうか?

例えば /master/employee, /master/supplier, /master/customer
の配下にそれぞれ、新規、編集、削除を用意する

同じように, /entry/order, /entry/ship のように…。

全部 controllers の中での1次元で管理するしかないでしょうか?
889nobodyさん:2008/12/12(金) 19:47:38 ID:???
貴方にマニュアルを読ませる事は出来ないでしょうか?
890nobodyさん:2008/12/12(金) 20:06:04 ID:???
>>888
Routesの設定 :: 環境設定 :: CakePHPによる開発 :: マニュアル :: 1.2 Collection :: The Cookbook
http://book.cakephp.org/ja/view/46/Routes%E3%81%AE%E8%A8%AD%E5%AE%9A

結構ややこしいんで、実は自分もよく分かってないんだけど。
891nobodyさん:2008/12/13(土) 07:24:42 ID:???
CakePHP では htmlspecialchars() を h() と短縮できるのだが……、
ちょっと気になることがあって、該当するソースを確認すると、
下記のようになっていた。

return htmlspecialchars($text);

配列を渡すと、その値をすべて処理してくれるのは
便利だけど、htmlspecialchars() はデフォルトのまま
使っているから、シングルクォートは変換されない
(ENT_COMPACT になる)。これはちょっと危険な気が
する。といって、コア部の cake/basics.php を直しても、
バージョンアップのたびに対処しなきゃいけないし、
むしろ忘れてしまう可能性大。
892nobodyさん:2008/12/13(土) 09:27:11 ID:???
シングルクォート(ってか')の変換されると困る場合もあるから
必要な人は自分でヘルパー作ればいいだけでは
893nobodyさん:2008/12/13(土) 09:27:59 ID:???
&apos;って書いたら変換されちゃった
894nobodyさん:2008/12/13(土) 09:34:57 ID:???
895nobodyさん:2008/12/13(土) 09:46:12 ID:???
>>891
1.2ではENT_QUOTESとcharset渡すように修正されている
896nobodyさん:2008/12/13(土) 10:07:11 ID:???
むしろscaffoldがh()で出力されてないのがちょっと。
897nobodyさん:2008/12/14(日) 01:36:39 ID:???
なんか最近cakephp.orgが重くてページが開かないことが多いなあ。
マニュアル首っ引きでないと作れないからツラい。
うまいことマニュアルを保存しておく方法ないかな。
898nobodyさん:2008/12/14(日) 12:07:36 ID:???
ウェブサイト保存ツールなんていくらでもある
899nobodyさん:2008/12/15(月) 19:20:01 ID:???
アソシエーションって、自分で joins 書くのに比べてメリットってある?
アソシエーションの定義をちまちま書くより joins を自分で書いたほうが楽な
気がしてるんだけど、アソシエーションを作るメリットがあれば
教えて。
900nobodyさん:2008/12/15(月) 19:23:50 ID:???
habtmとか典型的な例はcakeにやらせる方が楽
901851:2008/12/15(月) 21:09:07 ID:???
>>899
俺は joins の使い方がいまいちわからないから、cakephpのアソシエーションに頼ってる。
902nobodyさん:2008/12/15(月) 21:09:51 ID:???
↑ 851 となんにも関係ありません。間違えました。
903nobodyさん:2008/12/15(月) 22:31:16 ID:???
3つのテーブルを hasOne アソシエーションでつなぐ事ってできますか?

例として、

テーブル AAA
コードA, コードB, コードC、その他項目

テーブルA
コードA, 名前A

テーブル B
コードB, 名前B

テーブルC
コードC, 名前C

とあって、テーブルAAA と、テーブルA, テーブルB, テーブルC をつないで、
名前A, 名前B, 名前C を取得したいんですが、複数テーブルを hasOne する方法が
よくわからなくて。
904nobodyさん:2008/12/15(月) 22:58:07 ID:???
var $hasOne = array( 'A', 'B', 'C' );
でもいいし、
カスタマイズしたいなら
var $hasOne = array( 'A' => array('hoge' => 'fuga',
                      'hoge' => 'fuga'),
              'B' => array('hoge' => 'fuga',
                      'hoge' => 'fuga'),
              'C' => array('hoge' => 'fuga',
                      'hoge' => 'fuga') );
でもいい。
905nobodyさん:2008/12/16(火) 05:22:00 ID:???
パフォーマンス的には自分でJOINした方が早い場合が多い
アソシエーションは親のキーで子のデータを別のSQLで呼び直してる
906nobodyさん:2008/12/16(火) 11:12:03 ID:???
DBエラーなどが起こったときの画面があるけれど、あれを何か別の画面に差し
替えることってできないだろうか?
単にデバッグレベルを下げるのじゃなくて、他の画面と統一されたデザインの
画面にエラーを出力するようにしたいのだけど。
907nobodyさん:2008/12/16(火) 11:34:07 ID:???
>>906
cake/libs/view/errors フォルダの中身をまるごと自分のviewに入れる。
APP/view/errors/missing_table.ctp ..とか。
で、あとは好きなようにできるはず。
908nobodyさん:2008/12/16(火) 11:44:07 ID:???
>>907
ありがとう!試してみます。

質問ついでで申し訳ないのだけど、DBがエラーを起こした場合(バリデーショ
ンではなく、DBそのものの物理的なエラー)に表示されるエラーページって、
どのページなんでしょう?

missing_action.ctp とかいろいろあるけれど、DBエラーに対応するページが分
からない。
909nobodyさん:2008/12/16(火) 13:55:19 ID:???
>>908
物理的なエラーの時の表示がどんな表示なのかわからないけど、
missing_connection.ctp // DB接続失敗
missing_table.ctp // テーブルが見つからない
このどっちかじゃだめ?
910nobodyさん:2008/12/16(火) 14:53:25 ID:r+TWFAeS
テーブルが3つ以上の結合ならアソシエーションよりもsql文の方がよくない?発展させる必要があった場合は複雑になりやすくない?
911nobodyさん:2008/12/16(火) 17:16:28 ID:???
RC4もうすぐかな?
912nobodyさん:2008/12/16(火) 19:10:08 ID:???
cakephp 1.2 の model::beforeFind のコールバックって

自分のモデル内で、
function beforeFind(&$model, $query)
{
//コード
}

じゃ駄目なのかな?

Missing argument 2 ってエラーになるんだけど、なんでだろ。
913nobodyさん:2008/12/16(火) 19:27:30 ID:???
すいません、解決しました。

function beforeFind(&$query)

が正解のようでした。

ところで、今、http://book.cakephp.org/ja にアクセスすると、firefox だと、自動転送がループしています
って接続できませんが、うちだけでしょうか。
914nobodyさん:2008/12/16(火) 19:29:26 ID:???
>>912
関数の定義が重複しています
915nobodyさん:2008/12/16(火) 19:53:56 ID:???
>>913
何を今さら、昔からだろうが
916nobodyさん:2008/12/16(火) 19:57:03 ID:???
Firefoxだがループしないけど
917nobodyさん:2008/12/16(火) 20:07:34 ID:???
俺もループした
URL末尾につく全角文字列を消すとアクセス出来るけど
918nobodyさん:2008/12/16(火) 20:10:16 ID:???
全角消してもループするところもあるな
どうなってんだ

てかマニュアルDLして使いたいわ
重過ぎて使えない事も多いし
919nobodyさん:2008/12/16(火) 20:15:12 ID:???
公式サイトがこんな体たらくとかw
920nobodyさん:2008/12/16(火) 22:45:16 ID:???
ツール使ってマニュアルをダウンロードしてみた。
最初/ja以下を取って来ようとしたらエラいファイル数になったので、
ja/tocとja/viewの中身だけ持ってきました。あとCSSをいくつかと。
ローカルで見ると早くていいわー
921nobodyさん:2008/12/16(火) 22:55:33 ID:???
どのツール使った?
922nobodyさん:2008/12/17(水) 00:38:26 ID:???
おらあMacなんでSite Suckerってやつです。
923nobodyさん:2008/12/17(水) 06:08:04 ID:???
IEのオフライン機能でいいのでは
924nobodyさん:2008/12/17(水) 11:18:00 ID:???
またbook落ちてるな・・・
俺もダウンロードしとけばよかった・・・
925nobodyさん:2008/12/17(水) 13:43:33 ID:???
まだループ中
どこが管理してんの?
926nobodyさん:2008/12/17(水) 14:16:17 ID:???
レイアウトが崩れてるページも多いしどうなってるんだ
管理出来ないならwikiサービスにでも書いとけよw
927nobodyさん:2008/12/17(水) 14:51:11 ID:/y/VN6Cv
これ以上多機能にすると重くなるリファクタリングだけやってくれ
928nobodyさん:2008/12/17(水) 15:26:29 ID:???
個人的にCakeにはまだまだ強力な機能の追加余地があると思う
てか開発参加してー
日本語しか出来ないけど
929nobodyさん:2008/12/17(水) 17:23:30 ID:???
>>927
機能の多さと重くなるかどうかはあまり関係無い。
930nobodyさん:2008/12/17(水) 17:24:37 ID:???
根幹機能については当然重くなるぞ
ライブラリ増やすとかは問題無いが
931nobodyさん:2008/12/17(水) 17:38:44 ID:???
マニュアルまだ見れねー
どんなカスが管理してんだ
932nobodyさん:2008/12/17(水) 17:43:44 ID:???
ソースの自動生成はsymfonyのが上だけど、
細々した機能はCakeのが多機能になってきたねー

AuthとかACLとかお手軽すぎるw
フレームワークなしでは開発できなくなりそう・・・
933nobodyさん:2008/12/17(水) 18:03:29 ID:???
1.2は特に細かいけど便利なのがついてるので助かる。
パン屑とかツリー表示とか、おいおい前に俺が自作しちゃったライブラリはどうしてくれるんだよ。
ってのが多いわ。
934nobodyさん:2008/12/17(水) 18:08:10 ID:???
マニュアルさっきからずっと見られるぜ
WindowsXPSP2+Firefox3.0.4
IE6でも見られる
935nobodyさん:2008/12/17(水) 19:30:18 ID:???
いやまだループしてるな
ループするページが変わっただけ
936nobodyさん:2008/12/17(水) 19:32:30 ID:???
パンくずとかHTML化してくれるだけじゃん
そんなんで多機能とか言ってるのが悲しすぎるし
cake本家の開発力を疑う
937nobodyさん:2008/12/17(水) 19:48:48 ID:???
FireFox3.0.4 XP SP3
マニュアルのいくつかのページでこうなる

自動転送がループしています
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
リクエストされたリソースの取得を中止しました。このサイトではリクエストの自動転送がループしています。
* このサイトで要求されている Cookie を無効化またはブロックしていないか確認してください。
* 注意: サイトによる Cookie の使用を許可しても解決しない場合、これはご利用のコンピュータではなくサーバの設定に問題があると思われます。
938nobodyさん:2008/12/17(水) 19:52:36 ID:???
>>936
もしかしてパンくず以外何も知らないのか?
939nobodyさん:2008/12/17(水) 19:55:33 ID:???
2.xシリーズではさらに機能追加するらしいね。
どんなのが増えるんだろ・・・

どんなの欲しい?
940nobodyさん:2008/12/17(水) 19:58:10 ID:???
sqlite3正式対応。
941nobodyさん:2008/12/17(水) 20:18:30 ID:???
Railsのlock_version相当機能は欲しいな
942nobodyさん:2008/12/17(水) 20:35:25 ID:???
>>938
標準でそれ以外にパンくず生成に役立つライブラリがあるの?
943nobodyさん:2008/12/17(水) 21:28:07 ID:???
役に立たないライブラリ言ってみ。

それでお前がライブラリを知っているのかどうかもわかるしw
944nobodyさん:2008/12/17(水) 21:47:21 ID:???
役に立たないライブラリがあるんじゃなくて
役に立つライブラリが少な過ぎるっていってるの
945nobodyさん:2008/12/17(水) 21:56:58 ID:???
じゃあ、お前はどんなライブラリがほしいのさw
946nobodyさん:2008/12/18(木) 12:24:48 ID:???
>>945
それは既に独自に作って自分の競争力にしてるんで言えないな

今日もマニュアルはループ中
947nobodyさん:2008/12/18(木) 12:50:24 ID:???
必死さが伝わるよい返しですね
948nobodyさん:2008/12/18(木) 12:56:08 ID:???
マニュアルループしてる奴は自分の環境疑った方がいいのでは
他のコミュニティでも話題になってないだろ
949nobodyさん:2008/12/18(木) 15:00:40 ID:???
あちら側でリダイレクトしてるんだから、「自分の環境」ではどうにもならない話だと思うけど。

英語版とかは特に問題なく見れるし、キャッシュがぶっ壊れてるとかじゃないのかなあ。
950nobodyさん:2008/12/18(木) 15:10:12 ID:???
Cakeマニュアルでしか発生してないし
リダイレクトのルール設定が間違ってるんじゃないの?
ループしてる奴何人くらい居る?

一人目ノ
951nobodyさん:2008/12/18(木) 15:24:26 ID:???
マニュアルのトップページだけ開いてループなんておこらないなー
何言ってんだろと思ってたら
3 CakePHPによる開発に移動しようとしたらループ発生したんだぜ・・・

Firefox3.0.4
952nobodyさん:2008/12/18(木) 15:27:12 ID:???
ループするとことしないとこあるね
953nobodyさん:2008/12/18(木) 16:52:08 ID:???
こういうのは見れる
http://book.cakephp.org/ja/view/171

デフォルトのタイトル名がURLに含まれるやつは、リダイレクトの時にデコードされてるからかリダイレクトがうまくいかないね
954nobodyさん:2008/12/18(木) 16:54:09 ID:???
>>951
俺も試したらなったよ。

自動転送がループしています
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
955nobodyさん:2008/12/18(木) 16:56:11 ID:???
と思ったらフォーラムじゃあ既出か
956nobodyさん:2008/12/18(木) 21:23:43 ID:???
CakePHP のあるページから、別のページを別画面(ブラウザ)に表示して、
そこから元のページのある部分の
957956:2008/12/18(木) 21:25:01 ID:???
↑途中で送信してしまいました。すみません。

CakePHP のあるページから、別のページを別画面(ブラウザ)に表示して、
そこから元のページのある部分の値をかきかえたい、という事がやりたいのですが、
CakePHP での何かよい方法はありますか?

Javascript をゴリゴリ書くしかないでしょうかね。
958nobodyさん:2008/12/18(木) 21:41:14 ID:???
もうやだこのキモフレームワーク><
959nobodyさん:2008/12/18(木) 21:42:07 ID:???
>>956,957
うん。jsしかないと思う。
960nobodyさん:2008/12/18(木) 21:52:50 ID:???
>>945
> それは既に独自に作って自分の競争力にしてるんで言えないな
お前は頭悪いのか?

CakePHPのライブラリの話じゃなかったか?
お前のそのライブラリ、競争力になりえるというのなら
CakePHP以外でも存在しないってことになるよな?

CakePHP以外でお前のそのライブラリがあるのなら、
競争力になるはずがない。
よって、CakePHPだけに使えるライブラリがないわけじゃなく、
どこにもないライブラリという話だ。

その競争力になるライブラリをCakePHPに標準搭載しろと
要求しているのか? お前の競争力なくなるぞ。
まあその程度のライブラリなのだろうなw
961nobodyさん:2008/12/18(木) 22:05:08 ID:???
>>960
全てのフレームワークを調査したわけじゃないからそんな事は考慮して話してない。
ただちょっと頭を使えばフレームワークに組み込むべき汎用的なコンポーネントがいくつも足りない。
962nobodyさん:2008/12/18(木) 22:05:59 ID:???
と言うか人に頭悪いとか言い出してる時点で
もう話がしたいんじゃなく単に「僕の不機嫌を治してください」って言ってるようなものだからな
病院いきなよ
963nobodyさん:2008/12/18(木) 22:14:25 ID:???
>>961
だから、その組み込むべき汎用的なコンポーネントってなんだよw

それは競争力になるから教えられない?

本当に組み込むべき汎用的なコンポーネントなら、
近い将来組み込まれるだろう。

そしたらお前の競争力はなくなる。
お前のはその程度の競争力なんだよ。理解しろ。
964nobodyさん:2008/12/18(木) 22:18:31 ID:???
>>963
既に論点が変わってるよ
君はCakeの機能が豊富だと主張したいのか
俺には競争力が無いといいたいのか
どっちだったかな?
965nobodyさん:2008/12/18(木) 22:19:34 ID:???
汎用的な組み込むべきコンポーネントがなんなのか、
なぜいえないんだろうなw
966nobodyさん:2008/12/18(木) 22:22:08 ID:???
>>964
汎用的なコンポーネントには、競争力なんて存在しない。

汎用的なものは誰でも考えつくし、言った程度でまねされるようなレベルのものなのか?

だから(お前が考えている)汎用的なコンポーネントとは何か言えと言う話。
967nobodyさん:2008/12/18(木) 22:25:22 ID:???
Cake使ってて足りない汎用コンポーネントに気付かないなら実力不足
968nobodyさん:2008/12/18(木) 22:26:22 ID:???
ほら、やっぱいえないw

もういえない時点で論外でしょ。こいつ。
969nobodyさん:2008/12/19(金) 10:20:36 ID:???
もう相手しなくていいよ。
使いたい人だけが使えばよい。
「仕事で仕方なく使ってやってる」とかいうやつは、使いたくないなら仕事辞めればよい
970nobodyさん:2008/12/19(金) 10:22:08 ID:???
この板も強制IDになればいいのに。
971nobodyさん:2008/12/19(金) 11:49:47 ID:???
CakePHPなれたきたら

テーブル追加
登録、編集、削除、検索(5項目AND Like)、ページャー
*フィールドは5つくらい

この一連の作業が30分くらいで出来てしまうんだけど
恐るべきCakePHP
972nobodyさん:2008/12/19(金) 11:54:53 ID:???
2〜3時間の作業がCakePHPのおかげで30分くらいになったのは確か
今年の3月くらいから始めたんだけど
来年はCakePHPで案件フル稼働させるぞ
973nobodyさん:2008/12/19(金) 11:59:50 ID:???
ページャーはviewに関数1個いれるだけでいいくらい
コンポーネント利用して簡素化した方が楽だね
974nobodyさん:2008/12/19(金) 12:01:37 ID:???
ページャのこのサイトのCSSに合わせてるから
入れ替えで、すぐ使える

http://www.mis-algoritmos.com/2007/03/16/some-styles-for-your-pagination
975nobodyさん:2008/12/19(金) 12:03:50 ID:???
このページャデザインサイトはspan使ってるからね
ヘルパーでspan扱えるよう加工した
976nobodyさん:2008/12/19(金) 12:32:47 ID:???
/page:1
みたいに、URLにコロンが入るのがちょっとなぁ・・・
まだ?page=1のほうがいい。

どこに手入れればいいのかな?
977nobodyさん:2008/12/19(金) 12:43:08 ID:???
helperの
html.phpに
var $tags = arrayに

'spanblock' => '<span%s>%s</span>',
'spanblockstart' => '<span%s>',
'spanblockend' => '</span>',
を追加して
span関数を定義したよ
function span($class = null, $text = null, $attributes = array(), $escape = false) {

if ($escape) {
$text = h($text);
}

if ($class != null && !empty($class)) {
$attributes['class'] = $class;
}
if ($text === null) {
$tag = 'spanblockstart';
} else {
$tag = 'spanblock';
}
return $this->output(sprintf($this->tags[$tag], $this->_parseAttributes($attributes, null, ' ', ''), $text));
}

もっと丁寧に説明するべきだけど時間ないから
後はなんとかうまくやってください
978977:2008/12/19(金) 12:44:21 ID:???
こんなことしなくてもCSSだけでうまくいくかもしれないよ
俺はCSS詳しくないから
ヘルパー加工しただけだよ
979nobodyさん:2008/12/19(金) 12:51:49 ID:???
>>976
たしか、Routerにてnamed param を何とかできたはず
980976:2008/12/19(金) 13:49:03 ID:???
>>979
サンクス。
ソース見てみたらそれっぽいのがあった。
まだどう使うのかわからんが・・・

ってかRC4キターーー!
981nobodyさん:2008/12/19(金) 14:06:18 ID:???
ぶっちゃけURL気にしてるのなんて技術者だけですよ
982nobodyさん:2008/12/19(金) 14:08:46 ID:???
RC4!!!

Our expectation is that we will be able to release a stable very soon after RC4.
ほぼstableなんだろうね
983nobodyさん:2008/12/19(金) 14:54:35 ID:???
RC4て検索条件のGET、POSTパラメーターをとりやすくしてあるのか?
今俺の使ってるバージョンは
GETデータとPOSTデータの入ってくる配列が違うから
こんなかんじで
$this->params['data']['Model']['mail'];
$this->params['named']["Model.name"];

検索条件は最初POSTデータで飛ばすけど
次ページ処理させるとGETデータでくるから
POSTとGETに対応させるのが面倒だったんだよな
RC4でそれが楽になるってことなんかな?
984nobodyさん:2008/12/19(金) 14:55:19 ID:???
訂正

RC4て検索条件のGET、POSTパラメーターをとりやすくしてあるのか?
今俺の使ってるバージョンは
GETデータとPOSTデータの入ってくる配列が違うから
こんなかんじで
$this->params['data']['Model']['mail'];
$this->params['named']['Model.mail'];

検索条件は最初POSTデータで飛ばすけど
次ページ処理させるとGETデータでくるから
POSTとGETに対応させるのが面倒だったんだよな
RC4でそれが楽になるってことなんかな?
985nobodyさん:2008/12/19(金) 15:06:02 ID:???
追加された機能、訳して
BehaviorsRevision Behavior - Revision control made easy Behaviors

Multiple Display Field Behaviors

AttributeBehavior - DRY and powerful

Wizard Component 1.2 Components

A new "automagic" for CakePHP layouts with the CustomLayouts component Components

reCAPTCHA Component & Helper for CakePHP

Validanguage Helper for customizable Javascript form validation Helpers


986nobodyさん:2008/12/19(金) 15:06:33 ID:???
FlashHelper - a wrapper for the SwfObject js class Helpers

FlashChartHelper - version 3

Extending of DboSource and Model with sql generator function. Models

Obvious trick to reduce amount of HABTM relationship tables Models

LDAP datasource for cakePHP

Ajax Chat Plugin (using jQuery) Plugins

GeoCouch Plugin - Storing Geocoded data in CouchDB Plugins

ACL Management Plugin

How to create an XML-RPC server with CakePHP Snippets

eAccelerator Cache Engine Snippets

Form posting with '_GET' parameters
987nobodyさん:2008/12/19(金) 15:55:16 ID:???
988nobodyさん:2008/12/19(金) 16:07:36 ID:???
訳すべき部分がない
989nobodyさん:2008/12/19(金) 17:27:39 ID:???
>>985
なんか名前だけ見るとめっちゃワクワクするんだがw
以下、訳じゃない。名前から俺が想像したもの。

BehaviorsRevision Behavior ・・・リビジョン管理?なんか面白いこと出来そう。
AttributeBehavior- DRY and powerful ・・・DRYってことはテーブル変更せずに属性付けられる?
Wizard Component 1.2 Components ・・・これでウィザード的なページ変移が簡単に行える?
reCAPTCHA Component & Helper for CakePHP ・・・うほっ。キャプチャwww
Validanguage Helper for customizable Javascript form validation Helpers ・・・JavaScriptバリデーション生成? これで完全にQuickForm不要?
FlashHelper、FlashChartHelper・・・Flashまああると便利だね。
Ajax Chat Plugin (using jQuery) Plugins ・・・いるのかこれ?w
Form posting with '_GET' parameters ・・・ん? 今でも出来るような気がするが何か勘違い?
990nobodyさん:2008/12/19(金) 17:35:51 ID:???
逆に多くの実装者が野良で作ってたヘルパーは実装されないんだな
991nobodyさん:2008/12/19(金) 17:53:25 ID:???
「多くの実装者が野良で作ってたヘルパー」ってどれのこと?

汎用性の無いヘルパーだったり、設計がダメダメだったりするんだろ?
992nobodyさん:2008/12/19(金) 18:12:25 ID:???
野良ヘルパーを公式さ紆余後ろって話じゃなくて、
野良で作ってるような機能を、公式できちんと載せればいいのにってことだろ。
993nobodyさん:2008/12/19(金) 18:56:00 ID:???
追加された機能ってどこに情報ある?
RC4 をダウンロードしてみたんだけど、どこに実装されているのかわからない…。
994nobodyさん:2008/12/19(金) 19:47:29 ID:???
ヘルパーのソースがどこにあるかくらいディレクトリ名見れば解るだろ…
995nobodyさん:2008/12/19(金) 20:01:03 ID:???
いや、ソースを grep かけたけど、追加された機能がみあたらないんだけど…。
俺の探し方が悪いのか?
996nobodyさん:2008/12/19(金) 20:25:42 ID:???
おれも見つからない。というか>>985がどこに載ってる情報かも見つけられないのだが
997nobodyさん:2008/12/19(金) 20:28:01 ID:???
ああ、分かった。bakeryのnew articleじゃまいか?
それはべつにrc4の新機能じゃない
998nobodyさん:2008/12/20(土) 09:50:59 ID:???
bakeryのHottest Codeだ。
999nobodyさん:2008/12/20(土) 14:31:32 ID:???
10001001:2008/12/20(土) 14:37:49 ID:rjb0NaLD
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。