【PHP】フレームワーク CakePHP 14ホール目【v2.1】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/05/01(火) 16:58:44.53ID:fVBzm1/ACakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい には無いかも
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
前スレ
【PHP】フレームワーク CakePHP 13ホール目【v2.0】
http://kohada.2ch.net/test/read.cgi/php/1320768310/
0583nobodyさん
2012/09/10(月) 16:01:44.70ID:???openpneだって2までは良かったんだけど3からシンフォニー()とか変なの採用してクソ重くなっただけでなくカスタマイズ性も落ちた
0584nobodyさん
2012/09/10(月) 16:20:01.42ID:???利用者にはほとんどメリット無いよ
0586nobodyさん
2012/09/11(火) 03:14:36.56ID:???前から騒いでる Yii ってのでも覗いてみようと思ったら
そっちのサイトも落ちてるじゃねーかw
>>585
前からことあるごとにYiiの宣伝に勤しんでるようだが、
(別人かも知れないがな)
どう良いのか書かねぇと誰も話を聞いてくれんぞ
0587nobodyさん
2012/09/11(火) 04:59:28.19ID:???0588nobodyさん
2012/09/12(水) 00:44:18.90ID:???一般 > ファイルの関連付けで
*.ctp をしっかり PHP エディター(デフォルト)に関連付けて
いるにも関わらず、Eclipseから*.ctpファイルを開いても
*.phpファイルを開いた時のフォントが適用されていません。
どこか設定が間違っているのでしょうか?
0589nobodyさん
2012/09/12(水) 00:59:24.23ID:???標準のバリデーションを使わずに、
自前でController内でバリデーション処理を組み込んでいるのですが
こーいうことはしないほうがやっぱり良い?
0590nobodyさん
2012/09/12(水) 01:03:11.83ID:???0591nobodyさん
2012/09/12(水) 01:08:25.46ID:???実は、まだcakePHPのバリデーション機構をあまり理解していなくて(時間がないので)
既存のPHPの知識だけでコントローラ内でバリデーション処理を組んでます。
(FW使ってる意味ねーじゃんw)
0592nobodyさん
2012/09/12(水) 01:10:40.04ID:???0593nobodyさん
2012/09/12(水) 02:19:19.08ID:???コントローラは質素に作るのが定石。
そのやり方はたぶんまずい。
使い方が分からなければ、ロジックをモデルに書いておいて後でリファクタリング。
0594nobodyさん
2012/09/12(水) 02:33:05.48ID:???アドバイスサンクスです。
※現在は、モデルは形上テーブル数分用意してますが
特にこれといったコードを書いていないです。。。
おいおい勉強してゆきます。
0595nobodyさん
2012/09/12(水) 02:45:41.26ID:???まずこれを読むといいと思ってどこかに上がってた翻訳を探してたんだが
見つけられなかったスマン。
http://bitfluxx.com/2008/01/23/cakephp-best-practices-fat-models-and-skinny-controllers.html
概要はここでわかる。
http://blog.syuhari.jp/archives/172
俺も始めコントローラにゴリゴリ処理を書いて納品したあとで
この知識を知って、この記事を早く読めばよかったと心から悔やんだ。
コントローラに複雑な処理を書くとあとで泣きを見る確率激高だ。
趣味でやってるんならじっくり覚えていけばいい。
0596nobodyさん
2012/09/12(水) 05:14:49.77ID:???ありがとうございます。
モデルの本来の使い方をやっと知った感じです。
コントローラに何でも詰め込んでいましたが
モデルに検索機能とかを移動させたら大分コードがすっきりしました。
0597nobodyさん
2012/09/12(水) 10:25:29.96ID:???ユーザー入力からのデータを保存する際には使った方がいいのか
0598nobodyさん
2012/09/12(水) 11:06:09.67ID:???0599nobodyさん
2012/09/12(水) 13:35:01.67ID:???0600nobodyさん
2012/09/12(水) 14:33:36.86ID:???2日ぐらい調べているけどわからない
海外フォーラムとか見ても多発してるが解決策がない模様
1.3に戻すか…
0602nobodyさん
2012/09/12(水) 18:21:16.88ID:???古いバージョンのなら出てくるんだけど、当然試してもダメだった
よく調べるとリダイレクトすると空になるんじゃなくて、
リダイレクト前後でsession_id()が異なる値を返し、リダイレクト前にwriteした値が正しく保存されてないようだ
何故こうなるのかがわからない
0604nobodyさん
2012/09/12(水) 19:19:58.01ID:???1.3も1.3.10ぐらいまではひどいバグあった、テーブル全消し喰らったり
0605nobodyさん
2012/09/12(水) 19:24:44.80ID:???0606nobodyさん
2012/09/12(水) 20:06:50.64ID:???0607nobodyさん
2012/09/12(水) 23:23:35.18ID:???なんでもcakeのバグとか言わない。
0609nobodyさん
2012/09/13(木) 07:33:06.03ID:???APIでのユーザ認証はどんな風に実装するのが普通でしょうか?
APIへのセッション情報の受け渡し方法が判らないです・・・
0610nobodyさん
2012/09/13(木) 08:19:36.38ID:???0611nobodyさん
2012/09/13(木) 10:08:21.91ID:???0613nobodyさん
2012/09/13(木) 11:11:51.90ID:???0614nobodyさん
2012/09/15(土) 18:54:29.08ID:???って名前のテーブルを定義しようとしたら
score_dailies にしろってエラーがcakeから返されるんだけど
どうも daily は形容詞であり、複数形など無いので
凄く納得が行きません。
テーブル名称は、複数系にしなくちゃならないのでしょうか?
0615nobodyさん
2012/09/15(土) 18:58:42.11ID:???いやならmodelにuseTableで指定すればいいだけ
0617nobodyさん
2012/09/17(月) 13:46:54.01ID:???それ以下の行は実行されないという認識であってまっすか
0620nobodyさん
2012/09/18(火) 10:50:35.32ID:???core.phpで Configure::write('debug', 0);としていても、エラー時にCakeのエラー表示が出てしまいます
出さないようにするにはどこで設定するのでしょうか?
0621nobodyさん
2012/09/18(火) 22:18:22.36ID:???0622nobodyさん
2012/09/18(火) 22:38:41.86ID:???引き続き調べていてわかったのは、PHPにエラーがある場合にそうなります。
存在しないURLを入れた場合には、CakePHPのエラー表示用の?ソースコードが吐かれます。頭にCakeのコメント付きの。
これでは困るので、なんとかならないでしょうか。何かおかしいと思うのですが…。
エラーがなければ正常に動いています。
0623nobodyさん
2012/09/19(水) 00:47:19.09ID:???0624nobodyさん
2012/09/19(水) 08:58:59.05ID:???0625nobodyさん
2012/09/19(水) 10:46:33.83ID:???モデルの遅延読み込みで速くなったって、アソシエーション使ってなければ関係ないんじゃないの?
0626nobodyさん
2012/09/19(水) 16:01:01.46ID:???http://d.hatena.ne.jp/cakephper/20120828/1346162341
0628nobodyさん
2012/09/19(水) 16:28:46.26ID:???>>626見ると、バージョンアップしていく毎に遅くなるのか。
まぁ、機能が増えるから遅くなるのはわかるけども
0629nobodyさん
2012/09/19(水) 16:56:44.01ID:???DBをメモリに乗せてないだろうからDB接続を確立させるコストが一番高いんだろうな
そういう意味じゃどのFW使っても大差ないと思うし、バージョンの差分などは気にするほどでもないと思う。
0630nobodyさん
2012/09/19(水) 16:58:04.41ID:???0631nobodyさん
2012/09/19(水) 18:20:17.13ID:???0632nobodyさん
2012/09/19(水) 19:49:16.34ID:???0633nobodyさん
2012/09/19(水) 20:54:32.34ID:???0634nobodyさん
2012/09/20(木) 01:40:17.08ID:???0635nobodyさん
2012/09/20(木) 04:06:56.13ID:???0636nobodyさん
2012/09/20(木) 10:15:47.13ID:???0637nobodyさん
2012/09/20(木) 10:32:10.03ID:ir1LF+Ba各アクションのsetメソッドで1つづつ値を渡す方法でなく
AppControllerから一括でViewの全てのディレクトリのctpに変数を渡す方法ってありますか?
0638nobodyさん
2012/09/20(木) 10:52:45.15ID:???0639nobodyさん
2012/09/20(木) 11:02:18.03ID:???掲示板を作っていて、スレタイモデルとレスモデルが
スレhasManyレス
レスbelongsToスレ
になっているのですが、レスが追加された際にスレのmodifiedを自動更新する方法ないでしょうか?
counterCacheを使うとレス数カウントはできるのですが、更新時刻も取りたいです
0641nobodyさん
2012/09/22(土) 18:00:13.95ID:???0642nobodyさん
2012/09/22(土) 18:06:13.12ID:???findやsaveを1回する度にCPUが悲鳴を上げているような気持ちになる
気になるので今度lib以下のソース見てみるか
使わない機能はばっさりコメントアウトとかしちゃおうかな
0643nobodyさん
2012/09/22(土) 18:12:35.09ID:???0644nobodyさん
2012/09/22(土) 19:00:02.06ID:???0645nobodyさん
2012/10/01(月) 00:47:57.77ID:fpJxZWOxファイルが指定されていたらファイル形式、ファイルサイズなどをバリデーションにかけて、
指定されていなかったらかけない、という書き方がわかりません
どうしたらいいんでしょうか?
0646nobodyさん
2012/10/01(月) 02:38:43.69ID:???どこで躓いているのかもよく分からないし、
CakePHPのバージョンも分からないので答える気が失せる質問だから、
何となくvalidate 系のコールバックをうまく使えばいいじゃんとしか言えない。
0647nobodyさん
2012/10/01(月) 05:38:17.07ID:???//ファイルがアップロードされた場合のバリデーション
} else {
return true;
}
素のPHPで言うと、こういう事じゃないの?
0648nobodyさん
2012/10/01(月) 07:27:09.08ID:qwXCS9RT$form->file()でファイル渡せる状態になってるフォームで、
そこにファイルを指定したときだけファイルの中身のバリデーションをかけたいってことです
>>647
ありがとうございます
allowEmptyみたいな感じで、
<input type="file">にファイルを指定していなければバリデーションルールはスルーする
みたいな簡単にできるものってないんでしょうか?
0649nobodyさん
2012/10/01(月) 10:28:51.05ID:???0651nobodyさん
2012/10/01(月) 10:30:55.20ID:???0652nobodyさん
2012/10/01(月) 20:09:57.83ID:fpJxZWOxありがとうございます自作してみます
>>650
echo Configure::version();してみたら1.3.8って出ました
書き漏れすみません
>>651
allowEmptyでは無理でした
普通にエラー警告(ファイルの形式を見て、jpgでなければ警告を出すようにしてました)が出ました
0653nobodyさん
2012/10/01(月) 21:49:36.94ID:???2のリリースから1年も経って、やっとまともな本が一冊
うれしい
0655nobodyさん
2012/10/02(火) 01:23:26.02ID:???何故2系を使わないのか
0656nobodyさん
2012/10/02(火) 03:11:43.69ID:???0657nobodyさん
2012/10/02(火) 15:09:48.22ID:???0658nobodyさん
2012/10/02(火) 18:17:45.17ID:???0659nobodyさん
2012/10/02(火) 18:23:04.39ID:???0661nobodyさん
2012/10/07(日) 03:32:25.58ID:vSsbr+AJエラーメッセージをまとめて一箇所に表示する方法ってある?
0663nobodyさん
2012/10/07(日) 15:15:02.59ID:???ログ見るべし
0664nobodyさん
2012/10/12(金) 18:03:03.50ID:zHaiJKat僕が思いつくのは、
app_controller.phpのbeforeFilter()に、
アカウントテーブルのlastloginに現在の時間をupdateする方法です
ログインのアクションに記述すると、
クッキーで自動ログインしている際などはそのアクションを通らないので不適切でした
なにか他に良い方法ありますでしょうか??
0665nobodyさん
2012/10/12(金) 23:39:10.35ID:???0666nobodyさん
2012/10/16(火) 15:59:26.74ID:???「外注が作ったCakeのコードが糞だから書き直した」的なブログ記事。
「お前のコードも糞じゃねぇか」って叩かれてワロタw
てか、俺の書き方が意外と駄目じゃないと知っただけでも収穫あったぜ
0667nobodyさん
2012/10/17(水) 20:17:29.91ID:???0668nobodyさん
2012/10/17(水) 20:54:19.04ID:???これかな
0669nobodyさん
2012/10/18(木) 00:28:24.24ID:???「プロになるためのPHPプログラミング入門」という本が良さそうと思ったんですが、
ver1.3基準で書かれているようです。
cakePHP2を勉強するうえで、1.3基準の本は有用でしょうか?
0670nobodyさん
2012/10/18(木) 01:17:25.05ID:???もうcake2の本はあるんだからそっち選びなさい。
CakePHP2 実践入門 は評判良いぞ。
0671nobodyさん
2012/10/18(木) 23:55:26.47ID:???670に同じく今さら1.3の本を読むのは時間のむだ。
公式のチュートリアルを何回も繰り返して手順を身体に覚えこませてから
>>670 の本を読むといいと思うよ。
0672669
2012/10/22(月) 14:14:23.93ID:???0673nobodyさん
2012/10/24(水) 12:14:02.26ID:???Authコンポーネントのログインで、認証条件を付ける時、
以下のようにすればOKとあったのですが、条件が適用されません。
書き方が違うのでしょうか?
$this->Auth->userScope = array( 'User.status'=>1 );
0674nobodyさん
2012/10/24(水) 14:29:36.53ID:???同コントローラの別アクションへredirect処理が行なわれなくなりました。
$this->redirect(コントローラ名:アクション名)を試してみても
$this->redirect(相対パスor絶対パス)の形でも
どちらの形式でも正しくリダイレクトが行なわれていないようです(真っ白なページが表示される)
何か間違っているのでしょうか
0675674
2012/10/24(水) 15:50:39.87ID:???お騒がせしました
0676nobodyさん
2012/10/24(水) 16:28:04.62ID:???それ、1.3の書き方なんじゃないの?
よく分からんけど公式ドキュメントにそんなプロパティ載ってないよ
1.3ならあったみたいだけど
>>674
真っ白=debugモードが0でいいのかな?
だとしたらキャッシュクリアしてみた?
0678673
2012/10/25(木) 09:13:43.26ID:???ありがとうございます。
自分もソースを見直したら、以下のようにしたら実行できました。
$this->Auth->authenticate = array(
'Form' => array(
'scope' => array('User.status' => 1)
)
);
0679nobodyさん
2012/10/26(金) 15:07:41.06ID:???これってモデル(ビヘイビア)の処理ですかね?
コントローラ側でエラーチェックとかアップロード先のパスとか書いていくと
長くなるのでどうすれば納まりが良く、使い回しが利くかと悩んでいます。
0680nobodyさん
2012/10/26(金) 15:44:39.23ID:???効率化よりも今まで書いていた方法で行きます。
0681nobodyさん
2012/10/26(金) 17:58:57.48ID:???あとプラグインもいいのあるけど、何で使わないの?
0682nobodyさん
2012/10/26(金) 19:01:29.27ID:???自分の使い方だと、コントローラの方が良いと思いまして。
例えば、一度アップロードしたファイルはセッションに入れて、
フォームのその他の項目にエラーがある時は、
そのセッションを表示して再アップロードさせない。
みたいな処理を入れる時、セッションコンポーネントを使うので、
モデル内で解決するより、コントローラの方が簡単だと思いまして。
あと、プラグインも小回りが利かないんです。
ファイル名をいくつかのパターンで生成したい時とか、
最初は仮フォルダにアップして、save前に公開画面のフォルダに移動するとか
そういう細かい仕様に対応するには自作の方が便利なんです。
ファイルアップロードの仕組みを自作する事自体は簡単ですし。
■ このスレッドは過去ログ倉庫に格納されています