トップページ⇒php
981コメント296KB

【PHP】フレームワーク CakePHP 17ホール目【v2.4】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2014/03/01(土) 17:03:24.57ID:8AJ9GD6E
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
Issue
http://cakephp.lighthouseapp.com/dashboard
CheatSheet[1.2] (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] http://book.cakephp.org/2.0/ja/index.html
[1.3] http://book.cakephp.org/ja

※前スレ
http://kohada.2ch.net/test/read.cgi/php/1378659370/
0035nobodyさん2014/03/05(水) 08:22:44.09ID:???
DWとか補完ねーだろ、知らずに言ってるけど
0036nobodyさん2014/03/05(水) 11:36:59.89ID:???
うちのデザイナ兼コーダーはPHPStormとFireworks使ってるな
DW使う余地はないらしい
0037nobodyさん2014/03/05(水) 15:32:41.15ID:???
>>35
補完ないけど、手打ちした方が早いと個人的に思ってる。

俺は f, を押すとfunction
ts を押すと$this-setが出るようにしてる。
0038nobodyさん2014/03/05(水) 15:39:28.53ID:???
みんなWindowsで開発して
レンタルサーバーはLinuxなの?
それともレンタルサーバーもWindows?
0039nobodyさん2014/03/05(水) 16:03:27.33ID:???
>>38
前者です
0040nobodyさん2014/03/05(水) 20:48:51.34ID:???
IDEの補完の恩恵って速さもあるけどミスが減ることだと思う
0041nobodyさん2014/03/05(水) 21:20:36.95ID:???
純粋にWindowsで開発するの?
Linux on VMとかそういのじゃないよ。
0042nobodyさん2014/03/05(水) 21:22:19.75ID:???
ここでMacの人が通りますよ…
もともとDTPだけだったんですがね、どうしてこうなった
0043nobodyさん2014/03/05(水) 23:39:42.38ID:???
手打ちが速いとかいうやつとは一緒に仕事したくねぇな
自分だけ石器時代にいること気がつかないのか
0044nobodyさん2014/03/06(木) 01:34:18.88ID:???
Windowsで開発なんて苦行はもうやりたくねぇ。
ただ、最近Macたけーんだよなぁ。
0045nobodyさん2014/03/06(木) 01:39:01.70ID:???
AdobeがLinuxに対応してくれさえすれば
0046nobodyさん2014/03/06(木) 01:41:18.94ID:???
>>43
ボロボロ打ち間違えてコンパイラとか何やらに怒られまくる人いるよね
0047nobodyさん2014/03/06(木) 16:30:29.55ID:???
コンパイラに怒られまくっているうちはいいよ。
0048nobodyさん2014/03/06(木) 16:38:25.92ID:???
Vimで開発してる人いる?
0049nobodyさん2014/03/06(木) 17:39:00.27ID:???
>>48
してる。けど時々嫌になる。
Ctrl+p があるから同じファイル内にある文字列なら補完してくれる。
0050nobodyさん2014/03/07(金) 04:26:25.69ID:???
vimでやっとるよ
0051nobodyさん2014/03/07(金) 23:51:55.49ID:???
xamppで開発してるの俺だけか・・・
0052nobodyさん2014/03/08(土) 01:16:47.70ID:???
(´・ω・`)ノシ
0053nobodyさん2014/03/08(土) 01:32:28.55ID:???
>>51
えっ
0054nobodyさん2014/03/08(土) 02:06:28.48ID:???
AMPは全員じゃないの
0055nobodyさん2014/03/08(土) 10:10:54.63ID:???
xampp&Dreamweaverで開発してるの俺だけか・・・
0056nobodyさん2014/03/08(土) 13:25:58.29ID:???
>>55
せやな
0057nobodyさん2014/03/08(土) 19:26:45.91ID:???
>>55
せやせや
0058nobodyさん2014/03/08(土) 21:12:37.20ID:???
そいやそいやー!!
0059nobodyさん2014/03/09(日) 09:34:45.06ID:???
>>51
ProductionもWindowsならいいとおもうけどね。
0060nobodyさん2014/03/10(月) 01:08:03.93ID:???
最近nginx postgresqlの案件が多い
時代も変わったな
0061nobodyさん2014/03/10(月) 01:14:07.27ID:???
一時 node.js x nginx の案件が続けてあったけど今はぱったりなくなった。

うちの開発力を考えてみたら、理由は何となく分かる。
0062nobodyさん2014/03/10(月) 02:26:08.77ID:???
>>61
残念なんだな
0063nobodyさん2014/03/10(月) 03:08:31.82ID:???
しかしとうとうApache一強とも言っていられないのか
0064nobodyさん2014/03/10(月) 04:27:16.33ID:???
>>60
nginxはわかるけど、なんでいまPostgres?
なんかPostgres盛り上がる要因とかあったっけ?
0065nobodyさん2014/03/10(月) 21:21:56.51ID:???
id、date、text、deleteというテーブルAと、
id、date、text、text2、deleteというテーブルBの2つから
deleteの値がbのものだけdateの値のascソートで
id、date、textをfindしたいんですが、どう書いたらいいですか?
0066nobodyさん2014/03/10(月) 22:08:49.44ID:???
>>64
MySQLはOracleがしっちゃかめっちゃかにしてるから相対的に人気になってるんじゃね?
0067nobodyさん2014/03/11(火) 00:15:01.95ID:???
>>65
SQLクエリをどう書くか考えて、それをfind conditionに落とし込む
頑張ってねー
0068nobodyさん2014/03/11(火) 08:26:50.13ID:???
>>64
サーバー管理部門にpostgresを指定されたからって客が多い
互換性やライセンスで将来性に問題があるって言われることが多いよ
0069nobodyさん2014/03/11(火) 08:34:20.29ID:???
何も考えず.net採用して高いライセンス料払うシス管よりだいぶ優秀だな
0070nobodyさん2014/03/11(火) 08:50:55.26ID:???
クラウドではmysqlのほうが限界ありそうだもんな
0071nobodyさん2014/03/11(火) 11:13:18.89ID:???
え、分散処理はMySQLのほうが上じゃないの?
0072nobodyさん2014/03/11(火) 11:20:27.56ID:???
>>66
MariaDBもあるのにねぇ

>>68
将来性に問題があるのは、MySQLが?

ずっとPostgres押しな鯖管なのか、最近何か理由があってPostgresに乗り換えた鯖管なのか・・・
やっぱオラクルのせいかね。

海外製のフレームワーク使うときは、単純に利用実績が少ないだろうから、
PostgresとのI./F周りでバグが残ってそうでやなんだけどなぁ。
0073nobodyさん2014/03/11(火) 11:54:25.66ID:???
phpとの親和性が高いから人気だと思う>MySQL
Postgresはインストールから複雑だからね
0074nobodyさん2014/03/11(火) 12:06:44.94ID:???
>>73
インストールのどの辺りが複雑です?
手前でビルドするなりパッケージ管理使うなり
どちらもMySQLと差がないように見えるけど
0075nobodyさん2014/03/11(火) 12:38:57.23ID:???
yumで管理して、バージョンも上げていくとなると
PostgreSQLのほうが断然楽ですよ
0076nobodyさん2014/03/11(火) 13:39:09.07ID:???
ポスグレはWindowsに対しては入れにくい。
0077nobodyさん2014/03/11(火) 18:31:47.62ID:???
>>74
「どの辺が」って言われたら答えづらいけど、俺には難しく感じたな。
phpMyAdmin的ツールもない(俺が知らない)し。
0078nobodyさん2014/03/11(火) 20:38:18.52ID:???
日本はまだまだMySQL
0079nobodyさん2014/03/11(火) 21:13:40.85ID:???
>>77
ウィザード方式のインストーラーがあっても難しいですか?

> phpMyAdmin的ツールもない(俺が知らない)し。
そのまんまphpPgAdminがあります
0080nobodyさん2014/03/11(火) 21:20:51.46ID:???
PHPはまだまだMySQL
0081nobodyさん2014/03/11(火) 22:01:55.52ID:???
>>79
>そのまんまphpPgAdminがあります
へぇ、いいこと聞いた

いや使わんけど…
0082nobodyさん2014/03/11(火) 22:59:07.61ID:???
>>79
むしろ、ウィザード方式が難しいのかもしれないw
0083nobodyさん2014/03/11(火) 23:18:26.22ID:???
Windowsだとな
0084nobodyさん2014/03/12(水) 00:09:30.13ID:???
SQLite使ってる奴は居ないの?
0085nobodyさん2014/03/12(水) 00:35:14.55ID:???
Android開発者が使ってるよ
0086nobodyさん2014/03/12(水) 01:21:31.02ID:JpmxxtI4
SQLiteは無くならないだろ
0087nobodyさん2014/03/12(水) 05:13:57.33ID:???
>>85
iCloudとの相性もいい
0088「ガスライティング 集団ストーカー カルト」で検索を!2014/03/12(水) 10:17:56.59ID:lU6KEgTK
★マインドコントロールの手法★

・沢山の人が偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法


↑マスコミや、カルトのネット工作員がやっていること

TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。

リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
,,
0089nobodyさん2014/03/12(水) 16:45:29.66ID:???
>>67
> SQLクエリをどう書くか考えて、それをfind conditionに落とし込む
どう書くか考えてわからなかったんです
説明難しい質問だったらすみませんでした
0090nobodyさん2014/03/12(水) 18:07:22.48ID:???
俺もお前の質問の意味が分からん
自分でもわからないのに、他人がわかると思うか?
0091nobodyさん2014/03/12(水) 18:09:07.22ID:???
>>90
この質問はわかるぞ。面倒だからスルーだが。
0092nobodyさん2014/03/12(水) 18:11:24.37ID:???
わかるなら答えてやれよw
0093nobodyさん2014/03/12(水) 18:27:18.86ID:???
UNION ALL使えば
0094nobodyさん2014/03/12(水) 18:55:29.33ID:???
>>89
ならばスレ違いだ
0095nobodyさん2014/03/14(金) 11:56:16.48ID:???
画像のアップロード処理ってコントローラーでやってます?モデルですか?
今までコントローラーでやっていたのですが、モデルでやるような気がしてきました
0096nobodyさん2014/03/14(金) 12:48:14.25ID:???
>>95
悩むやつはだいたいモデルに置くべき
というか俺なら画像アップロードロジックだけまとめて別のクラスにして、モデルから委譲する
0097nobodyさん2014/03/14(金) 20:57:46.25ID:???
>>96
とりあえずモデルにまとめましたが、画像の処理って難しいですね。
・アップロードした場合
・アップロードしなかった場合
・アップロードして過去のファイルがある場合
・アップロードせず過去のファイルがある場合

などの条件判定が必要だったりして、モデルの構成に時間がかかりました。
beforeSaveとafterSaveを使ってなんとかまとめましたが、
ビヘイビアか何かでまとめた方がいいかもしれません。
0098nobodyさん2014/03/14(金) 21:38:04.58ID:???
ファイルアップロードのプラグインを使わない理由は?
0099nobodyさん2014/03/14(金) 21:55:08.48ID:???
>>98
自由度を追求したいので。
0100nobodyさん2014/03/14(金) 23:37:29.52ID:???
自由度を追求するレベルのやつは
こんなところでしょーもない質問はしない
0101nobodyさん2014/03/15(土) 02:23:33.07ID:???
まぁええやんか
0102nobodyさん2014/03/15(土) 09:07:57.50ID:???
ええよ
0103nobodyさん2014/03/15(土) 11:18:24.50ID:???
>>99
It's Freedom.
0104nobodyさん2014/03/15(土) 22:57:03.97ID:???
>>65
誰も答えてないんで作ってみた
テーブルの結合条件は知らんので適当に解釈してね
$params['joins'][] = array(
'type' => 'INNER',
'alias' => 'B',
'table' => 'b',
'conditions' => array(
'B.date = A.date',
'B.text = A.text',
'B.delete = A.delete',
)
);
$params['conditions']['A.delete'] = 'b';
$params['fields'] = array('A.id', 'A.date', 'A.text');
$params['order'] = array('A.date asc');
$this->A->find('all', $params);
0105nobodyさん2014/03/18(火) 15:37:09.88ID:???
あるコントローラの特定のアクションのみ、URLを
http://example.com/download/dl.php
のように拡張子をphpにしたいです
ぐぐってもわからないのですが何かやり方はありますか?
0106nobodyさん2014/03/18(火) 20:05:49.26ID:???
リクエストハンドラとルーティングかな
リクエストハンドラ要らんかもしれん
0107nobodyさん2014/03/19(水) 19:49:36.31ID:???
fc2ブログのソースがcakephpみたいだ
実際は違うけど、開発した人は影響受けてそう
0108nobodyさん2014/03/19(水) 20:01:23.03ID:???
ああ、なんか盛り上がってたね

にしても、なんかもっさい感じだな
コメントが日本語ってのもあるけどソースも…
0109nobodyさん2014/03/19(水) 23:34:46.59ID:???
ただの普通のMVCやん
Cakeよりmicro系に近い
Cakeっぽさって何かある?
0110nobodyさん2014/03/20(木) 00:08:10.16ID:???
ファイル構成がCakeっぽく感じたな。
zendとかsymphonyとかEthnaとか、
OSSならWordPressとかECCUBEとかphpBBとか
有名所は独自の構成だけど、fc2ブログはCakeっぽかった。
だから、君の言う「普通のMVC」がこうなのかは知らんが。
0111nobodyさん2014/03/20(木) 00:42:22.76ID:???
WP, EC-CUBE, phpBB って、まじでグダグダだよな。
今さら手直し効かないレベル。
中の人もきっと諦めてるんだろう・・・
0112nobodyさん2014/03/20(木) 01:36:29.70ID:???
WPはウンコすぎてあんなのが世界中で普及したのは愚かだ
0113nobodyさん2014/03/20(木) 01:44:49.45ID:???
ECCUBEよりはましだよ
0114nobodyさん2014/03/20(木) 07:02:02.26ID:???
symfonyもzend frameworkもCakeもディレクトリ構成は変わらんぞ
sがつくつかない、大文字小文字、省略形とかの差ぐらい
0115nobodyさん2014/03/20(木) 07:30:03.64ID:???
どれもFWなんて似たようなものだな

fc2ブログのほうがcakephpより古いんだよね
0116nobodyさん2014/03/20(木) 07:51:32.20ID:???
controllerの__constructでほぼ全てのことを行っているところに古さを感じる
0117nobodyさん2014/03/20(木) 10:00:51.75ID:???
fc2ブログは意図的にコード減らしてるような気がするな
もちろん、オープンソースにするんだから当然なんだが
0118nobodyさん2014/03/20(木) 15:13:14.69ID:???
今更、hasAndBelongsToManyの凄さを知った。
これ、めちゃくちゃ便利だな
0119nobodyさん2014/03/20(木) 16:04:17.30ID:???
注意して使えよ
http://tech.a-listers.jp/2012/01/31/the-evil-unnecessary-has_and_belongs_to_many/
0120nobodyさん2014/03/20(木) 16:15:47.05ID:???
バッドプラクティス(笑
0121nobodyさん2014/03/20(木) 16:51:21.02ID:???
知りすぎてはいけないんだよ
0122nobodyさん2014/03/20(木) 17:09:04.14ID:???
どっちにしろ多対多をするには、中間テーブルが必要だろ?
中間テーブル無しで管理する方法があるなら教えて欲しい
0123nobodyさん2014/03/20(木) 20:34:48.05ID:???
中間テーブルがいけないなんて誰も言わない
0124nobodyさん2014/03/20(木) 21:24:40.70ID:???
habtmはやりすぎな感じが嫌われてるんだろうね
Railsでもhmtに移行してるし
0125nobodyさん2014/03/21(金) 00:20:48.70ID:???
countCacheとか便利過ぎる
0126nobodyさん2014/03/22(土) 17:59:24.57ID:???
cakephp2.4.6でフィールドが「id、name、age、comment」とあるとして
$this->User->save(array('id' => 1, 'name' => 'aaa'), false);
こんな感じで更新しようとしたのですが、
なぜかage・commentがnullになります。

saveの前にcreateしても一緒です。こういう現象になった方、いませんでしょうか?
ちなみにjQueryを使ってAjaxで実行しています。
0127nobodyさん2014/03/22(土) 18:41:02.58ID:???
プルダウンで日付セレクトするフォームで
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
...
<option value="31">31</option>
みたいのを生成してくれるヘルパーかプラグイン知りませんか?いちいち書くのめんどい
0128nobodyさん2014/03/22(土) 18:58:26.38ID:???
JSでどぞ
0129nobodyさん2014/03/22(土) 18:59:39.59ID:???
>>126
仕様でございます。

save()はPKがあればUPDATE、無ければINSERTだけど、
UPDATEの際渡されたデータに入れ替える。
ajaxじゃなく普通の更新フォームの場合、変更しなかったデータもPOSTされてくるから、
そういう問題になることが無いので、ajaxであれ?となるのはたまにあるな。

テクニックとして、save()の第三引数に、INSERT、UPDATEしたいフィールドを指定できる。

$this->User->save(array('id' => 1, 'name' => 'aaa'), false, array('name'));

こうすることでおそらく意図通りの動きをすると思うよ。
0130nobodyさん2014/03/22(土) 19:02:18.13ID:???
>>127
普通にFormHelperで出来るような気がするけど。
まぁ日付となると、FormHelperは英語向けすぎてちょっと使いにくいから、
別途Helper作ることはあるけどさ。
0131nobodyさん2014/03/22(土) 20:04:26.36ID:???
>>104
ありがとうございます
join使ってみます
0132nobodyさん2014/03/22(土) 20:12:45.97ID:???
paginationを使って取得したものを
$paginator->numbers(true);でリンクを生成しました
記事が三件、limitを1にすると、23のリンクが生成されて、配列は一個だけ
2を押すとfoo/index/page~2に飛ぶのに1のときと同じ配列が表示され、23のリンクが生成されています
(2ページ目に飛んでいない)
3を押しても同様です
心当たりはbelongtoで他のdbのデータも引っ張ってきていることくらいです
何か特殊なケースはあるんでしょうか?
ご存知のかたご教示ください
01331322014/03/22(土) 20:40:23.27ID:???
すみません>>132です
conditionsの書き方に不備があっただけみたいです
0134nobodyさん2014/03/22(土) 21:18:12.91ID:???
よくある
0135nobodyさん2014/03/22(土) 21:33:09.93ID:???
>>129
おおおお、これははじめて知りました!勉強になります。
何時間も悩んでいたのですが、解決できそうです。
本当に助かりました。ありがとうございました!
■ このスレッドは過去ログ倉庫に格納されています