【PHP】フレームワーク CakePHP 13ホール目【v2.0】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/09(水) 01:05:10.60ID:???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/
0262nobodyさん
2011/12/16(金) 23:38:25.39ID:???0263nobodyさん
2011/12/17(土) 00:03:51.26ID:???ワロタ
学生の課題ならそれでいいんじゃね
0264nobodyさん
2011/12/17(土) 06:04:20.02ID:???原因として何が考えられますか?
core.phpでは以下のようになっています。
Configure::write('Session.timeout', '31536000');
Configure::write('Session.start', true);
Configure::write('Security.level', 'low');
ちなみに、サーバーにアップロードすると自動的に切れてしまうのですが、
ローカルでは大丈夫(もしくは切れるまでの時間が長い)なんですよね・・・
0265nobodyさん
2011/12/17(土) 06:11:18.00ID:???Configure::write('Session.checkAgent', true);
あと関連しそうな設定は上記になっています。忘れていました。
他のsession関連の設定はコメントアウトされています。
0266nobodyさん
2011/12/17(土) 09:24:53.68ID:???findで目的のレコードを取り出してsaveするのと
updateAllで1つだけ更新するのとでは、どちらが速いですか?
0268nobodyさん
2011/12/17(土) 14:55:06.91ID:???update posts set title = 'hogehoge' where id = 5;
と
update posts set title = 'hogehoge' where user_id = 3;
さてどっちが速いかね
0269nobodyさん
2011/12/17(土) 15:59:01.03ID:???0272nobodyさん
2011/12/17(土) 19:59:48.04ID:6Ny+9Cbjこれ消す方法ないですか?
0274nobodyさん
2011/12/18(日) 04:48:44.53ID:9T9v3cA3arning (512): _cake_model_ cache was unable to write 'default_"xxx"' to File cache [CORE\Cake\Cache\Cache.php, line 310]
みたいな警告が出るんですが同じ症状の人いません?
0275nobodyさん
2011/12/18(日) 18:19:44.28ID:???どこが遅いかの原因解明をまず行うべきです。
SQLレベルなのか、画面描画なのか、CakePHPのせいなのかetc
ユーザー数増加によるアクセス過多も問題になることはありますね。
根本的に解決しない可能性もあります。
0276nobodyさん
2011/12/18(日) 18:27:15.86ID:???やりたい事をそのまま2つの処理で書いて、debugでSQLが出力されますので、
それをMySQLのオプティマイザーなどの時間が計測できる機能で実際に試してみては?
レコード数の多い・少ないにも関連しそうなので、
テストする際には1か月後、1年後などの予測されるレコード数で実行することを忘れずに。
0277nobodyさん
2011/12/19(月) 21:46:59.93ID:???やりたいことは、特定のタグを持った投稿を取得する、という単純なものです。
配列は以下のようになっていて、ConditionにTag.name => $tagname などとしても取得できませんでした
Array
(
[0] => Array
(
[Post] => Array
(
[id] => 60089
[message] => testtest
)
[Tag] => Array
(
[0] => Array
(
[id] => 8
[name] => タグ1
[PostTag] => Array
(
[id] => 26
[post_id] => 60089
[tag_id] => 8
)
)
[1] => Array
:
:
)
)
0279nobodyさん
2011/12/20(火) 05:19:51.29ID:???0280nobodyさん
2011/12/20(火) 11:14:14.85ID:???SQLでとってくる方法はないですか?
「タグ1と関連づいた投稿を全て取得する」というfindができれば教えてほしいんですが、、、
0281nobodyさん
2011/12/20(火) 11:48:28.25ID:???モデル名のキーが頭に付くのがジャマでしょうがないよね
仕方ないからいつもこうやってる
$data = $this->find( ....
$data = $data['モデル名'];
0284nobodyさん
2011/12/20(火) 14:59:31.58ID:???俺は↓する
$data = $this->User->find('all');
$user_data = $data['User']
これだとどのモデルか分かりやすいし。
ただし、アソシエーション使ってる場合などは、適切でないかも。
0285nobodyさん
2011/12/20(火) 16:07:14.62ID:???$this->data = $data
ってやると、formヘルパーの値valueに自動でセットするためにキーがついてからね。
おれはあんまり気にしたことがない。
0286nobodyさん
2011/12/20(火) 17:30:41.74ID:???find('all');ってテーブルの全レコード取り出してるの?
あんまりそういう機会ないなあ
あとfind('all')だと配列が返ってくるから、2行目はエラーになるんじゃないか
0288nobodyさん
2011/12/21(水) 08:45:16.75ID:???0289nobodyさん
2011/12/21(水) 10:15:07.10ID:???Configure::write('Session.timeout', '31536000');
↑これってセッションファイルが破棄されるまでの時間じゃないのかよ!!!ややこしすぎ
0291nobodyさん
2011/12/21(水) 14:24:31.11ID:???紹介している人のブログ見たけど、いまいち何が捗るのか分からん
別に配列で指定しても見た目で分かるじゃん。
0292nobodyさん
2011/12/21(水) 14:41:31.77ID:???0293nobodyさん
2011/12/21(水) 14:45:23.68ID:???0294nobodyさん
2011/12/21(水) 14:57:27.19ID:???0295nobodyさん
2011/12/21(水) 23:18:44.66ID:???0296nobodyさん
2011/12/21(水) 23:35:54.39ID:???複数のモデルとコントローラーから利用する予定だけど、クラスとして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:???その都度SQL叩いてるんだったか、どっちだったか忘れた。
0301nobodyさん
2011/12/22(木) 18:58:21.21ID:???セッション発行してるけど、なんのために?
中規模のサイトだったらsessionファイルが何万も作られて怖いんだけど
0303nobodyさん
2011/12/22(木) 21:12:30.05ID:???falseにしたら
$this->Session->setFlash
のメッセージが表示されなくなったニダ
0304nobodyさん
2011/12/23(金) 00:56:07.87ID:???0305nobodyさん
2011/12/23(金) 12:30:12.44ID:???0306nobodyさん
2011/12/23(金) 12:56:48.08ID:???今更変えられないし
0307nobodyさん
2011/12/23(金) 13:04:59.22ID:???変えられないのはお前のせい。
正しくフレームワークを使っていれば
自分の作ったコードとフレームワークを分離させられる。
0308nobodyさん
2011/12/23(金) 13:24:47.98ID:???0309nobodyさん
2011/12/23(金) 13:33:57.13ID:???0310nobodyさん
2011/12/23(金) 14:26:04.13ID:???そのサイトで問題ないんだから、使い方が悪いだけだ
0311nobodyさん
2011/12/23(金) 16:12:44.23ID:???最終版と銘打ったものが出ない限り、クリティカルなバグを含んでなければコアをアップデートする気になれない俺は無精すぎる
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:???ビューキャッシュって$autoLayoutがfalseの場合、
キャッシュファイルが生成されません。
レイアウトを使用しない場合、キャッシュが生成されないのでしょうか?
0316nobodyさん
2011/12/24(土) 15:39:27.27ID:???その状況でのみキャッシュ生成されないんならそうなんじゃない?
layout/empty.ctpとか作ってコンテンツだけを単純に出力するレイアウトにして適用すれば回避できそうだけど
0317315
2011/12/24(土) 17:08:20.11ID:???ありがとうございます。仮のレイアウト作る方法で出来ました。
ただビューキャッシュについては上手く行かないことが多くて、
例えば、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セッションの有効期限を変更するのってどこをいじればいいんでしょうか?
0319318
2011/12/25(日) 03:57:41.58ID:???一箇所に固まったのね。
0320nobodyさん
2011/12/25(日) 17:29:14.64ID:???自分で作るよりそんなに楽なの?
0323nobodyさん
2011/12/26(月) 00:40:12.74ID:???conditions に array("MATCH(title) AGAINST ('".mysql_real_escape_string($keyword)."')");
みたいな感じに書くと「DBに接続できてないからmysql_real_escape_stringは使えないっすよ」的なエラーが出るんだけどどうしたらいいんだ
0324nobodyさん
2011/12/26(月) 08:51:40.09ID:???cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
0325nobodyさん
2011/12/26(月) 08:53:39.81ID:???cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
0326nobodyさん
2011/12/26(月) 19:22:58.29ID:???App::import('Sanitize');
Sanitize::escape($keyword); とか
0329nobodyさん
2011/12/27(火) 13:24:45.98ID:???0330nobodyさん
2011/12/27(火) 13:29:34.03ID:???たいしたことないから修正されないんですかね?
実際に個人情報とか漏れてるわけでもないので別に問題ないっちゃ問題だいけど。
ちょうどフレームワーク名に使おうか迷っててcakephpにも興味あるんですが
cakephpてurlにクエリをつけるとこういうページが表示されるものなんでしょうか?
http://mystone.aeriagames.jp/?
0331nobodyさん
2011/12/27(火) 14:05:11.21ID:???0332nobodyさん
2011/12/27(火) 16:06:32.48ID:???以前は入っていたような気がするんだけれども、2.xになってから使われてないっぽかったので、よくわからんので質問したんだ
説明不足ですまぬ
>>326
さんくす!
0333315
2011/12/27(火) 17:42:17.16ID:???もう何日もググって試してやってますが、
ビューキャッシュファイルにprefixが付きません・・・
0335nobodyさん
2011/12/28(水) 02:02:45.93ID:???DBから一覧を取得してその中の日付のフォーマット変えたり、
0か1で入っている性別を男と女に変換したりとか。
0336nobodyさん
2011/12/28(水) 07:03:30.26ID:???これは特殊例だな
多分トップページだけCakeのルーティングを外しているか特殊なmod_rewrite書いたりしてるはず
ソース読めないんで確かなことは言えないけど。
まあそもそも1.2の初期バージョン使ってるようなサイト参考にされても困る
0337nobodyさん
2011/12/28(水) 09:44:18.78ID:???1.3ならvirtualField使った方が良いのでは。
日付のフォーマット変えるのは自分は表示する時にしてるけど。
0338nobodyさん
2011/12/28(水) 09:59:07.49ID:???DBの値を変更って、SQLのINSERTとかUPDATEかと思った。
DBから引いたデータを加工するなら、viewでやろうがmodelでやろうが好きにすればいい。
そのあたりはpaginateでもfindと同じこと。争点にする意味がわからん。
0339nobodyさん
2011/12/28(水) 12:59:51.45ID:???こういうときつらいよな
Yiiはオブジェクトなんだっけ?
0340nobodyさん
2011/12/28(水) 14:11:35.72ID:???0341nobodyさん
2011/12/28(水) 14:16:12.40ID:???0342nobodyさん
2011/12/28(水) 14:43:40.02ID:???0343nobodyさん
2011/12/28(水) 15:50:07.23ID:???0344nobodyさん
2011/12/28(水) 16:36:45.22ID:???0345nobodyさん
2011/12/28(水) 17:11:51.85ID:???0346nobodyさん
2011/12/28(水) 17:18:26.85ID:???・Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス。
・ウェブアプリケーション(Web application)は、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。
ウェブアプリケーションの一例としては、ウィキペディアなどで使われているウィキやブログ、電子掲示板、銀行のインターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどを挙げることができる。
0347nobodyさん
2011/12/28(水) 19:42:34.74ID:???0348nobodyさん
2011/12/28(水) 20:23:56.64ID:???v2.0でもvirtualfieldだな
Paginatorのソートは、sqlに投げてるだけっぽいから、
加工後の値でソートしたいなら、virtualfield使うのが一番楽
0349nobodyさん
2011/12/28(水) 22:42:26.99ID:???0350nobodyさん
2011/12/28(水) 22:51:10.97ID:???って、んなわけねーだろ!
0351nobodyさん
2011/12/29(木) 01:39:46.15ID:???Webサービス→mixiとかtwitterとか
Webアプリケーション→OpenPNEとかWordpressとか
0352nobodyさん
2011/12/29(木) 03:10:25.40ID:???0353nobodyさん
2011/12/29(木) 04:32:43.50ID:???'id' => $user['User']['id'],
'lastlogin' => date("Y-m-d H:i:s", time()),
));
↑こうやってlastloginにユーザーのログイン時間を保存しているんですが、
ローカルではちゃんと保存されるのに、
全く同じコードをアップロードした本番サーバでは
保存されないのはなぜ??
0354nobodyさん
2011/12/29(木) 08:33:32.46ID:???0355nobodyさん
2011/12/29(木) 10:49:12.41ID:???0356nobodyさん
2011/12/29(木) 10:58:31.41ID:???学年
クラス
生徒
を管理するときに
コントローラ・・・学年
アクション・・・・クラス
id・・・・・・・・・・・生徒
とするのか
コントローラ・・・学年/クラス
アクション・・・・・生徒
とするのどちらがよいでしょうか?
前者の場合はモデルへデータを追加するだけで管理できますが
紺者の場合はモデルへデータの追加とアクションの追加を行いますが
どちらが定番といえますか?
■ このスレッドは過去ログ倉庫に格納されています