トップページphp
995コメント290KB

【PHP】フレームワーク CakePHP 13ホール目【v2.0】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/11/09(水) 01:05:10.60ID:???
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生した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 12ホール目【笑】
http://hibari.2ch.net/test/read.cgi/php/1309505626/
0285nobodyさん2011/12/20(火) 16:07:14.62ID:???
>>281
$this->data = $data
ってやると、formヘルパーの値valueに自動でセットするためにキーがついてからね。

おれはあんまり気にしたことがない。
0286nobodyさん2011/12/20(火) 17:30:41.74ID:???
>>284
find('all');ってテーブルの全レコード取り出してるの?
あんまりそういう機会ないなあ
あとfind('all')だと配列が返ってくるから、2行目はエラーになるんじゃないか
0287nobodyさん2011/12/20(火) 17:36:47.14ID:???
>>281
じゃまくせえとは思うけどアソシエーションを考えると仕方ないなと思ってそのまま使ってる
0288nobodyさん2011/12/21(水) 08:45:16.75ID:???
CakeEntity使えよ。色々捗るぞ
0289nobodyさん2011/12/21(水) 10:15:07.10ID:???
>>264だけど、
Configure::write('Session.timeout', '31536000');
↑これってセッションファイルが破棄されるまでの時間じゃないのかよ!!!ややこしすぎ
0290nobodyさん2011/12/21(水) 13:07:35.76ID:???
>>286
あくまで例を書いただけだが・・・
0291nobodyさん2011/12/21(水) 14:24:31.11ID:???
>>288
紹介している人のブログ見たけど、いまいち何が捗るのか分からん
別に配列で指定しても見た目で分かるじゃん。
0292nobodyさん2011/12/21(水) 14:41:31.77ID:???
そんなんだからぺちぱーなんだよ
0293nobodyさん2011/12/21(水) 14:45:23.68ID:???
ぺちぱーってなんですか
0294nobodyさん2011/12/21(水) 14:57:27.19ID:???
PHPer
0295nobodyさん2011/12/21(水) 23:18:44.66ID:???
パーラー(Pearler)ほど洒落た言い回しではありませんね。
0296nobodyさん2011/12/21(水) 23:35:54.39ID:???
APIにアクセスしたりするメソッドってどこに書けばいい?
複数のモデルとコントローラーから利用する予定だけど、クラスとしてLibに置いた方がいいのか
APIからデータを持ってくるところまでモデルとして扱っちゃった方がいいのかで迷っている。

http://www.multiburst.net/sometime-php/2009/01/cakephp-rakuten-webservice-genrecode/
この人はモデルに書いてるけど、外部のライブラリを使うわけで無ければモデルとして書いちゃった方がいいのかな。
0297nobodyさん2011/12/22(木) 16:13:09.95ID:???
ログインの実装のデファクトスタンダード的な方法ってあるの?
ログイン維持しておくのはセッションで?クッキーで?
セッションなりクッキーにユーザーIDだけ保存する?ユーザー情報も保存しておく?
0298nobodyさん2011/12/22(木) 16:20:05.12ID:???
ユーザー情報って具体的に何?
0299nobodyさん2011/12/22(木) 17:12:31.58ID:???
セッションで。名前とか権限とかよく使いそうなデータもいっしょにセッションに入れておく。
0300nobodyさん2011/12/22(木) 17:51:46.44ID:???
AuthComponentだと、usersテーブルの情報だけ持ち回してくれるんだっけ?
その都度SQL叩いてるんだったか、どっちだったか忘れた。
0301nobodyさん2011/12/22(木) 18:58:21.21ID:???
ってかCakePHPってアプリケーションにアクセスするだけで
セッション発行してるけど、なんのために?
中規模のサイトだったらsessionファイルが何万も作られて怖いんだけど
0302nobodyさん2011/12/22(木) 21:04:43.88ID:???
>>301
親切心での自動発行じゃ無いかな
いらないんならSession.startをfalseにしておこうぜ
0303nobodyさん2011/12/22(木) 21:12:30.05ID:???
>>302
falseにしたら
$this->Session->setFlash
のメッセージが表示されなくなったニダ
0304nobodyさん2011/12/23(金) 00:56:07.87ID:???
というか、2.0だとSession.startの設定出来なくなった?
0305nobodyさん2011/12/23(金) 12:30:12.44ID:???
俺も2,0にしたいけど書き換える部分めっちゃあるだろうからめんどうだわ
0306nobodyさん2011/12/23(金) 12:56:48.08ID:???
なんでCakeなんて使って作っちまったんだろうなあ
今更変えられないし
0307nobodyさん2011/12/23(金) 13:04:59.22ID:???
>>306
変えられないのはお前のせい。

正しくフレームワークを使っていれば
自分の作ったコードとフレームワークを分離させられる。
0308nobodyさん2011/12/23(金) 13:24:47.98ID:???
いやいやいやw
0309nobodyさん2011/12/23(金) 13:33:57.13ID:???
時間と手間をかければできる
0310nobodyさん2011/12/23(金) 14:26:04.13ID:???
1.3使ってる、それなりに大きなサイトあるだろ。
そのサイトで問題ないんだから、使い方が悪いだけだ
0311nobodyさん2011/12/23(金) 16:12:44.23ID:???
ふと気づいたんだけど、1.2系でさえまだメンテナンス続いてるのね
最終版と銘打ったものが出ない限り、クリティカルなバグを含んでなければコアをアップデートする気になれない俺は無精すぎる
0312nobodyさん2011/12/23(金) 16:19:01.72ID:???
動いてるシステムに手を入れたくない気持ちはよく分かる。
0313nobodyさん2011/12/23(金) 16:46:26.74ID:???
そうそう
寝た子を起こすようなことになってしまったら嫌だし
0314nobodyさん2011/12/23(金) 17:12:11.79ID:???
メジャーバージョンは動いているシステムだとアップデートするのはきついね。
マイナーバージョンは以前あったセキュリティコンポーネントのバグとかあるから注視しないといかんと思うけど。
0315nobodyさん2011/12/24(土) 08:41:32.33ID:???
1.3.13を使っています。
ビューキャッシュって$autoLayoutがfalseの場合、
キャッシュファイルが生成されません。

レイアウトを使用しない場合、キャッシュが生成されないのでしょうか?
0316nobodyさん2011/12/24(土) 15:39:27.27ID:???
>>315
その状況でのみキャッシュ生成されないんならそうなんじゃない?
layout/empty.ctpとか作ってコンテンツだけを単純に出力するレイアウトにして適用すれば回避できそうだけど
03173152011/12/24(土) 17:08:20.11ID:???
>>316
ありがとうございます。仮のレイアウト作る方法で出来ました。

ただビューキャッシュについては上手く行かないことが多くて、
例えば、core.phpに
Cache::config('default', array('engine' => 'File', 'prefix' => 'aaa_'));
としてもキャッシュファイルにprefixが付きません。
pathを指定しても、指定した箇所にファイルが生成されず、
普段通りapp/tmp/cache/viewsに作られるだけだし・・・

1.3.13をダウンロードして初期設定以外変えてないのですが
どうにもキャッシュ設定の変更が上手く行きません。
ググっても問題を見つけられないし・・・
分かる方いたらアドバイスお願いします。
0318nobodyさん2011/12/25(日) 03:30:55.85ID:S4Adtqyt
CakePHP2.0でSessionの設定関連がcore.phpに見当たらないんですが、
セッションの有効期限を変更するのってどこをいじればいいんでしょうか?
03193182011/12/25(日) 03:57:41.58ID:???
自己解決。
一箇所に固まったのね。
0320nobodyさん2011/12/25(日) 17:29:14.64ID:???
PaginatorHelperって使ってる?
自分で作るよりそんなに楽なの?
0321nobodyさん2011/12/25(日) 21:18:29.33ID:???
>>320
標準であるから使ってる。既にあるものを再作成しちゃいけない。
0322nobodyさん2011/12/25(日) 22:46:46.49ID:???
>>320
かなり楽
0323nobodyさん2011/12/26(月) 00:40:12.74ID:???
SQL文のパラメーターを自分でエスケープする時ってmysql_real_escape_stringでいいんだよね?
conditions に array("MATCH(title) AGAINST ('".mysql_real_escape_string($keyword)."')");
みたいな感じに書くと「DBに接続できてないからmysql_real_escape_stringは使えないっすよ」的なエラーが出るんだけどどうしたらいいんだ
0324nobodyさん2011/12/26(月) 08:51:40.09ID:???
>>323
cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
0325nobodyさん2011/12/26(月) 08:53:39.81ID:???
>>323
cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
0326nobodyさん2011/12/26(月) 19:22:58.29ID:???
>>323

App::import('Sanitize');
Sanitize::escape($keyword); とか
0327nobodyさん2011/12/27(火) 02:42:47.86ID:???
>>321,322
でもDBの値を変更して出力する場合には
対応してないですよね?
0328nobodyさん2011/12/27(火) 11:15:57.24ID:???
>>327
ページネイトでDBの値を変更するってどういう用途?
0329nobodyさん2011/12/27(火) 13:24:45.98ID:???
webrootをpublic_htmlにして、それ以外のフォルダはドキュメントルートの外に起きたい場合はどのように設定するのでしょうか?
0330nobodyさん2011/12/27(火) 13:29:34.03ID:???
↓のように見える件について報告はしたけど返信もこないんですけど
たいしたことないから修正されないんですかね?
実際に個人情報とか漏れてるわけでもないので別に問題ないっちゃ問題だいけど。
ちょうどフレームワーク名に使おうか迷っててcakephpにも興味あるんですが
cakephpてurlにクエリをつけるとこういうページが表示されるものなんでしょうか?

http://mystone.aeriagames.jp/?
0331nobodyさん2011/12/27(火) 14:05:11.21ID:???
うわー、urlに?を含めたこと無かったからびっくり。
0332nobodyさん2011/12/27(火) 16:06:32.48ID:???
>>324-325
以前は入っていたような気がするんだけれども、2.xになってから使われてないっぽかったので、よくわからんので質問したんだ
説明不足ですまぬ

>>326
さんくす!
03333152011/12/27(火) 17:42:17.16ID:???
どなたか>>317についてはわかりませんか?
もう何日もググって試してやってますが、
ビューキャッシュファイルにprefixが付きません・・・
0334nobodyさん2011/12/27(火) 19:36:48.08ID:???
>>329
webroot/index.phpでパスを指定する
0335nobodyさん2011/12/28(水) 02:02:45.93ID:???
>>328
DBから一覧を取得してその中の日付のフォーマット変えたり、
0か1で入っている性別を男と女に変換したりとか。
0336nobodyさん2011/12/28(水) 07:03:30.26ID:???
>>330
これは特殊例だな
多分トップページだけCakeのルーティングを外しているか特殊なmod_rewrite書いたりしてるはず
ソース読めないんで確かなことは言えないけど。
まあそもそも1.2の初期バージョン使ってるようなサイト参考にされても困る
0337nobodyさん2011/12/28(水) 09:44:18.78ID:???
>>335
1.3ならvirtualField使った方が良いのでは。
日付のフォーマット変えるのは自分は表示する時にしてるけど。
0338nobodyさん2011/12/28(水) 09:59:07.49ID:???
>>335
DBの値を変更って、SQLのINSERTとかUPDATEかと思った。
DBから引いたデータを加工するなら、viewでやろうがmodelでやろうが好きにすればいい。
そのあたりはpaginateでもfindと同じこと。争点にする意味がわからん。
0339nobodyさん2011/12/28(水) 12:59:51.45ID:???
Cakeはデータがただの配列だから、
こういうときつらいよな

Yiiはオブジェクトなんだっけ?
0340nobodyさん2011/12/28(水) 14:11:35.72ID:???
Cake使ってるWebサービスはあるけど、アプリはあるの?
0341nobodyさん2011/12/28(水) 14:16:12.40ID:???
アプリってなんぞ
0342nobodyさん2011/12/28(水) 14:43:40.02ID:???
意味不明ワロタ
0343nobodyさん2011/12/28(水) 15:50:07.23ID:???
mixiアプリとかのことかな?
0344nobodyさん2011/12/28(水) 16:36:45.22ID:???
すみません。webアプリのことです
0345nobodyさん2011/12/28(水) 17:11:51.85ID:???
webサービスとwebアプリの違いは?
0346nobodyさん2011/12/28(水) 17:18:26.85ID:???
wikipediaによると
・Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス。
・ウェブアプリケーション(Web application)は、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。
ウェブアプリケーションの一例としては、ウィキペディアなどで使われているウィキやブログ、電子掲示板、銀行のインターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどを挙げることができる。
0347nobodyさん2011/12/28(水) 19:42:34.74ID:???
その定義通りだとして(違和感はあるが)、逆にWEBサービスとして使われてるのを見たことないな
0348nobodyさん2011/12/28(水) 20:23:56.64ID:???
>>335
v2.0でもvirtualfieldだな
Paginatorのソートは、sqlに投げてるだけっぽいから、
加工後の値でソートしたいなら、virtualfield使うのが一番楽
0349nobodyさん2011/12/28(水) 22:42:26.99ID:???
SOAPやRESTfulな環境で使うイメージがわかない。
0350nobodyさん2011/12/28(水) 22:51:10.97ID:???
SOAP使ってないとWebサービスにならないのか
って、んなわけねーだろ!
0351nobodyさん2011/12/29(木) 01:39:46.15ID:???
俺は↓な風に思ってたけど・・・
Webサービス→mixiとかtwitterとか
Webアプリケーション→OpenPNEとかWordpressとか
0352nobodyさん2011/12/29(木) 03:10:25.40ID:???
Webサービス∈Webアプリケーション
0353nobodyさん2011/12/29(木) 04:32:43.50ID:???
$this->User->save(array(
'id' => $user['User']['id'],
'lastlogin' => date("Y-m-d H:i:s", time()),
));
↑こうやってlastloginにユーザーのログイン時間を保存しているんですが、
ローカルではちゃんと保存されるのに、
全く同じコードをアップロードした本番サーバでは
保存されないのはなぜ??
0354nobodyさん2011/12/29(木) 08:33:32.46ID:???
databaseの設定ミスとかじゃないよね?
0355nobodyさん2011/12/29(木) 10:49:12.41ID:???
webrootをpublic_htmlに変更し、それ以外を全部ドキュメントルートの上に置くというのは難しいですか?
0356nobodyさん2011/12/29(木) 10:58:31.41ID:???
MVCについてお聞きしたいのですが
学年
クラス
生徒
を管理するときに
コントローラ・・・学年
アクション・・・・クラス
id・・・・・・・・・・・生徒
とするのか
コントローラ・・・学年/クラス
アクション・・・・・生徒
とするのどちらがよいでしょうか?
前者の場合はモデルへデータを追加するだけで管理できますが
紺者の場合はモデルへデータの追加とアクションの追加を行いますが
どちらが定番といえますか?
0357nobodyさん2011/12/29(木) 12:02:14.47ID:???
>>353
本番サーバとやらのログを貼らないのはなぜ??
0358nobodyさん2011/12/29(木) 12:14:03.44ID:???
>>355
難しくありません。
03593532011/12/29(木) 12:45:18.65ID:???
>>357
ログとはどのログのことでしょうか?
0360nobodyさん2011/12/29(木) 12:54:07.59ID:???
>>356
まともな日本語でおk
「管理」の用法が特殊で意味がわからない
あと、MVCについて誤解してないか?
0361nobodyさん2011/12/29(木) 12:59:47.56ID:???
>>359
webサーバ、データベース、cakeあたりのログ
0362nobodyさん2011/12/29(木) 13:01:26.83ID:???
>>360
分からない奴は黙っていたほうが良い
恥を書いて荒らしなる道に行くから
0363nobodyさん2011/12/29(木) 13:33:28.56ID:???
わからないままは恥ずかしいので、
是非教えてください
荒らす気はありません
0364nobodyさん2011/12/29(木) 14:44:26.04ID:???
>>356
その例なら学年とクラスは一緒じゃないか?
カテゴリ・サブカテゴリの関係性だろ?
0365nobodyさん2011/12/29(木) 17:29:24.05ID:???
>>355
public_htmlの位置が変えられない環境ならこの辺参考にがんばれ
http://massat.jp/2007/01/08/110

>>356
その例だと、学年hasManyクラス、クラスhasMany生徒、のデーターベース構成の話になってしまうような
ちょっとMVCを誤解している気がする
0366nobodyさん2011/12/29(木) 17:41:41.88ID:???
なかなか斬新なMVCの解釈だなw
0367nobodyさん2011/12/29(木) 19:59:03.95ID:???
年末で暇なのか、賑わってるなー。よきかな
0368nobodyさん2011/12/29(木) 20:06:56.58ID:???
>>356
学年、クラス、生徒は全部モデルだよ。
正確に言えば、モデルが扱うデータとその属性だよ。

ま普通に考えれば、生徒がたくさん入っている生徒達データがあって、
学年とクラスは、生徒一人ひとりの属性。
0369nobodyさん2011/12/29(木) 20:09:49.58ID:???
コントローラはURLとモデルが持っているメソッドへの変換を行うものと考えればいい。
そして、メソッドの戻りをビューに変換する役目も持っている。

コントローラはあくまでURLとデータの変換をするだけで
学年とかクラスとかそんなものを扱う所ではない。
0370nobodyさん2011/12/30(金) 03:20:30.57ID:???
>>356は俺たちの煽り耐性を試してるんだと思う。
0371nobodyさん2011/12/30(金) 11:04:12.85ID:???
MVCを勘違いしていることはよく分かる。
0372nobodyさん2011/12/30(金) 12:04:16.43ID:???
MVCを理解していない人は非常に多いが、こういう勘違いをする人はレア
0373nobodyさん2011/12/30(金) 12:56:24.02ID:???
cookbookさえ読めば解決だと思う
0374nobodyさん2011/12/30(金) 13:57:03.73ID:???
MVCでラーメンは作れますか?
0375nobodyさん2011/12/30(金) 14:07:23.64ID:???
cookpadさえ読めば解決だと思う
0376nobodyさん2011/12/30(金) 14:08:22.55ID:???
MVCはなくても電気は足りるよ
0377nobodyさん2011/12/30(金) 15:17:13.68ID:???
MVC 2014年10月から引き上げ決定
0378nobodyさん2011/12/30(金) 15:37:15.23ID:???
MVCが異音出してて壊れそうなので買いに行きたいんだけど、そろそろ値段は落ち着いてるのかな
0379nobodyさん2011/12/30(金) 23:17:06.65ID:???
おれが、おれたちがMVCだ!
0380nobodyさん2011/12/31(土) 04:56:39.85ID:???
MVCとは違うのだよ、MVCとは!
0381nobodyさん2011/12/31(土) 07:32:25.22ID:???
MVCであることを強いられているんだ!
0382nobodyさん2011/12/31(土) 07:56:47.38ID:???
早くMVCになりたい!
0383nobodyさん2011/12/31(土) 07:57:13.90ID:???
MVC48がレコード大賞だってよ
0384nobodyさん2011/12/31(土) 08:39:39.24ID:???
さあ、ケーキ作りに戻ろうか。
■ このスレッドは過去ログ倉庫に格納されています