1 名前:nobodyさん mailto:sage [2011/11/09(水) 01:05:10.60 ID:???] CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ 質問するときはCakePHPのバージョンを書きましょう ※他フレームワークとの比較等はスレ違いです テンプレは>>1-5 くらい ■本家 www.cakephp.org/ APIドキュメント api.cakephp.org/ the Bakery bakery.cakephp.org/ CakeQs cakeqs.org/ CheatSheet (PDF) cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf github - cakephp github.com/cakephp ■日本語公式 cakephp.jp/ フォーラム cakephp.jp/modules/newbb/ cookbook(マニュアル) book.cakephp.org/ja 前スレ 【PHP】フレームワーク CakePHP 12ホール目【笑】 hibari.2ch.net/test/read.cgi/php/1309505626/
274 名前:nobodyさん [2011/12/18(日) 04:48:44.53 ID:9T9v3cA3] CakePHP2.0 + SQLite3で arning (512): _cake_model_ cache was unable to write 'default_"xxx"' to File cache [CORE\Cake\Cache\Cache.php, line 310] みたいな警告が出るんですが同じ症状の人いません?
275 名前:nobodyさん mailto:sage [2011/12/18(日) 18:19:44.28 ID:???] >>223 どこが遅いかの原因解明をまず行うべきです。 SQLレベルなのか、画面描画なのか、CakePHPのせいなのかetc ユーザー数増加によるアクセス過多も問題になることはありますね。 根本的に解決しない可能性もあります。
276 名前:nobodyさん mailto:sage [2011/12/18(日) 18:27:15.86 ID:???] >>259 やりたい事をそのまま2つの処理で書いて、debugでSQLが出力されますので、 それをMySQLのオプティマイザーなどの時間が計測できる機能で実際に試してみては? レコード数の多い・少ないにも関連しそうなので、 テストする際には1か月後、1年後などの予測されるレコード数で実行することを忘れずに。
277 名前:nobodyさん mailto:sage [2011/12/19(月) 21:46:59.93 ID:???] HABTAMで関連付けられた、投稿-タグのテーブルの検索ってどうやるんでしょうか。 やりたいことは、特定のタグを持った投稿を取得する、という単純なものです。 配列は以下のようになっていて、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 : : ) )
278 名前:nobodyさん mailto:sage [2011/12/19(月) 22:57:47.33 ID:???] >>277 Set::extract使うべし
279 名前:nobodyさん mailto:sage [2011/12/20(火) 05:19:51.29 ID:???] え、そういう問題?
280 名前:nobodyさん mailto:sage [2011/12/20(火) 11:14:14.85 ID:???] >>278 SQLでとってくる方法はないですか? 「タグ1と関連づいた投稿を全て取得する」というfindができれば教えてほしいんですが、、、
281 名前:nobodyさん mailto:sage [2011/12/20(火) 11:48:28.25 ID:???] Cakeってさ、findでデータ取ってきた時に モデル名のキーが頭に付くのがジャマでしょうがないよね 仕方ないからいつもこうやってる $data = $this->find( .... $data = $data['モデル名'];
282 名前:nobodyさん mailto:sage [2011/12/20(火) 12:16:02.08 ID:???] >>277 findするときに、joinsオプション使って明示的にJOINする
283 名前:nobodyさん mailto:sage [2011/12/20(火) 12:36:01.65 ID:???] >>281 よくやる。
284 名前:nobodyさん mailto:sage [2011/12/20(火) 14:59:31.58 ID:???] >>281 俺は↓する $data = $this->User->find('all'); $user_data = $data['User'] これだとどのモデルか分かりやすいし。 ただし、アソシエーション使ってる場合などは、適切でないかも。
285 名前:nobodyさん mailto:sage [2011/12/20(火) 16:07:14.62 ID:???] >>281 $this->data = $data ってやると、formヘルパーの値valueに自動でセットするためにキーがついてからね。 おれはあんまり気にしたことがない。
286 名前:nobodyさん mailto:sage [2011/12/20(火) 17:30:41.74 ID:???] >>284 find('all');ってテーブルの全レコード取り出してるの? あんまりそういう機会ないなあ あとfind('all')だと配列が返ってくるから、2行目はエラーになるんじゃないか
287 名前:nobodyさん mailto:sage [2011/12/20(火) 17:36:47.14 ID:???] >>281 じゃまくせえとは思うけどアソシエーションを考えると仕方ないなと思ってそのまま使ってる
288 名前:nobodyさん mailto:sage [2011/12/21(水) 08:45:16.75 ID:???] CakeEntity使えよ。色々捗るぞ
289 名前:nobodyさん mailto:sage [2011/12/21(水) 10:15:07.10 ID:???] >>264 だけど、 Configure::write('Session.timeout', '31536000'); ↑これってセッションファイルが破棄されるまでの時間じゃないのかよ!!!ややこしすぎ
290 名前:nobodyさん mailto:sage [2011/12/21(水) 13:07:35.76 ID:???] >>286 あくまで例を書いただけだが・・・
291 名前:nobodyさん mailto:sage [2011/12/21(水) 14:24:31.11 ID:???] >>288 紹介している人のブログ見たけど、いまいち何が捗るのか分からん 別に配列で指定しても見た目で分かるじゃん。
292 名前:nobodyさん mailto:sage [2011/12/21(水) 14:41:31.77 ID:???] そんなんだからぺちぱーなんだよ
293 名前:nobodyさん mailto:sage [2011/12/21(水) 14:45:23.68 ID:???] ぺちぱーってなんですか
294 名前:nobodyさん mailto:sage [2011/12/21(水) 14:57:27.19 ID:???] PHPer
295 名前:nobodyさん mailto:sage [2011/12/21(水) 23:18:44.66 ID:???] パーラー(Pearler)ほど洒落た言い回しではありませんね。
296 名前:nobodyさん mailto:sage [2011/12/21(水) 23:35:54.39 ID:???] APIにアクセスしたりするメソッドってどこに書けばいい? 複数のモデルとコントローラーから利用する予定だけど、クラスとしてLibに置いた方がいいのか APIからデータを持ってくるところまでモデルとして扱っちゃった方がいいのかで迷っている。 www.multiburst.net/sometime-php/2009/01/cakephp-rakuten-webservice-genrecode/ この人はモデルに書いてるけど、外部のライブラリを使うわけで無ければモデルとして書いちゃった方がいいのかな。
297 名前:nobodyさん mailto:sage [2011/12/22(木) 16:13:09.95 ID:???] ログインの実装のデファクトスタンダード的な方法ってあるの? ログイン維持しておくのはセッションで?クッキーで? セッションなりクッキーにユーザーIDだけ保存する?ユーザー情報も保存しておく?
298 名前:nobodyさん mailto:sage [2011/12/22(木) 16:20:05.12 ID:???] ユーザー情報って具体的に何?
299 名前:nobodyさん mailto:sage [2011/12/22(木) 17:12:31.58 ID:???] セッションで。名前とか権限とかよく使いそうなデータもいっしょにセッションに入れておく。
300 名前:nobodyさん mailto:sage [2011/12/22(木) 17:51:46.44 ID:???] AuthComponentだと、usersテーブルの情報だけ持ち回してくれるんだっけ? その都度SQL叩いてるんだったか、どっちだったか忘れた。
301 名前:nobodyさん mailto:sage [2011/12/22(木) 18:58:21.21 ID:???] ってかCakePHPってアプリケーションにアクセスするだけで セッション発行してるけど、なんのために? 中規模のサイトだったらsessionファイルが何万も作られて怖いんだけど
302 名前:nobodyさん mailto:sage [2011/12/22(木) 21:04:43.88 ID:???] >>301 親切心での自動発行じゃ無いかな いらないんならSession.startをfalseにしておこうぜ
303 名前:nobodyさん mailto:sage [2011/12/22(木) 21:12:30.05 ID:???] >>302 falseにしたら $this->Session->setFlash のメッセージが表示されなくなったニダ
304 名前:nobodyさん mailto:sage [2011/12/23(金) 00:56:07.87 ID:???] というか、2.0だとSession.startの設定出来なくなった?
305 名前:nobodyさん mailto:sage [2011/12/23(金) 12:30:12.44 ID:???] 俺も2,0にしたいけど書き換える部分めっちゃあるだろうからめんどうだわ
306 名前:nobodyさん mailto:sage [2011/12/23(金) 12:56:48.08 ID:???] なんでCakeなんて使って作っちまったんだろうなあ 今更変えられないし
307 名前:nobodyさん mailto:sage [2011/12/23(金) 13:04:59.22 ID:???] >>306 変えられないのはお前のせい。 正しくフレームワークを使っていれば 自分の作ったコードとフレームワークを分離させられる。
308 名前:nobodyさん mailto:sage [2011/12/23(金) 13:24:47.98 ID:???] いやいやいやw
309 名前:nobodyさん mailto:sage [2011/12/23(金) 13:33:57.13 ID:???] 時間と手間をかければできる
310 名前:nobodyさん mailto:sage [2011/12/23(金) 14:26:04.13 ID:???] 1.3使ってる、それなりに大きなサイトあるだろ。 そのサイトで問題ないんだから、使い方が悪いだけだ
311 名前:nobodyさん mailto:sage [2011/12/23(金) 16:12:44.23 ID:???] ふと気づいたんだけど、1.2系でさえまだメンテナンス続いてるのね 最終版と銘打ったものが出ない限り、クリティカルなバグを含んでなければコアをアップデートする気になれない俺は無精すぎる
312 名前:nobodyさん mailto:sage [2011/12/23(金) 16:19:01.72 ID:???] 動いてるシステムに手を入れたくない気持ちはよく分かる。
313 名前:nobodyさん mailto:sage [2011/12/23(金) 16:46:26.74 ID:???] そうそう 寝た子を起こすようなことになってしまったら嫌だし
314 名前:nobodyさん mailto:sage [2011/12/23(金) 17:12:11.79 ID:???] メジャーバージョンは動いているシステムだとアップデートするのはきついね。 マイナーバージョンは以前あったセキュリティコンポーネントのバグとかあるから注視しないといかんと思うけど。
315 名前:nobodyさん mailto:sage [2011/12/24(土) 08:41:32.33 ID:???] 1.3.13を使っています。 ビューキャッシュって$autoLayoutがfalseの場合、 キャッシュファイルが生成されません。 レイアウトを使用しない場合、キャッシュが生成されないのでしょうか?
316 名前:nobodyさん mailto:sage [2011/12/24(土) 15:39:27.27 ID:???] >>315 その状況でのみキャッシュ生成されないんならそうなんじゃない? layout/empty.ctpとか作ってコンテンツだけを単純に出力するレイアウトにして適用すれば回避できそうだけど
317 名前:315 mailto:sage [2011/12/24(土) 17:08:20.11 ID:???] >>316 ありがとうございます。仮のレイアウト作る方法で出来ました。 ただビューキャッシュについては上手く行かないことが多くて、 例えば、core.phpに Cache::config('default', array('engine' => 'File', 'prefix' => 'aaa_')); としてもキャッシュファイルにprefixが付きません。 pathを指定しても、指定した箇所にファイルが生成されず、 普段通りapp/tmp/cache/viewsに作られるだけだし・・・ 1.3.13をダウンロードして初期設定以外変えてないのですが どうにもキャッシュ設定の変更が上手く行きません。 ググっても問題を見つけられないし・・・ 分かる方いたらアドバイスお願いします。
318 名前:nobodyさん [2011/12/25(日) 03:30:55.85 ID:S4Adtqyt] CakePHP2.0でSessionの設定関連がcore.phpに見当たらないんですが、 セッションの有効期限を変更するのってどこをいじればいいんでしょうか?
319 名前:318 mailto:sage [2011/12/25(日) 03:57:41.58 ID:???] 自己解決。 一箇所に固まったのね。
320 名前:nobodyさん mailto:sage [2011/12/25(日) 17:29:14.64 ID:???] PaginatorHelperって使ってる? 自分で作るよりそんなに楽なの?
321 名前:nobodyさん mailto:sage [2011/12/25(日) 21:18:29.33 ID:???] >>320 標準であるから使ってる。既にあるものを再作成しちゃいけない。
322 名前:nobodyさん mailto:sage [2011/12/25(日) 22:46:46.49 ID:???] >>320 かなり楽
323 名前:nobodyさん mailto:sage [2011/12/26(月) 00:40:12.74 ID:???] SQL文のパラメーターを自分でエスケープする時ってmysql_real_escape_stringでいいんだよね? conditions に array("MATCH(title) AGAINST ('".mysql_real_escape_string($keyword)."')"); みたいな感じに書くと「DBに接続できてないからmysql_real_escape_stringは使えないっすよ」的なエラーが出るんだけどどうしたらいいんだ
324 名前:nobodyさん mailto:sage [2011/12/26(月) 08:51:40.09 ID:???] >>323 cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
325 名前:nobodyさん mailto:sage [2011/12/26(月) 08:53:39.81 ID:???] >>323 cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
326 名前:nobodyさん mailto:sage [2011/12/26(月) 19:22:58.29 ID:???] >>323 App::import('Sanitize'); Sanitize::escape($keyword); とか
327 名前:nobodyさん mailto:sage [2011/12/27(火) 02:42:47.86 ID:???] >>321 ,322 でもDBの値を変更して出力する場合には 対応してないですよね?
328 名前:nobodyさん mailto:sage [2011/12/27(火) 11:15:57.24 ID:???] >>327 ページネイトでDBの値を変更するってどういう用途?
329 名前:nobodyさん mailto:sage [2011/12/27(火) 13:24:45.98 ID:???] webrootをpublic_htmlにして、それ以外のフォルダはドキュメントルートの外に起きたい場合はどのように設定するのでしょうか?
330 名前:nobodyさん mailto:sage [2011/12/27(火) 13:29:34.03 ID:???] ↓のように見える件について報告はしたけど返信もこないんですけど たいしたことないから修正されないんですかね? 実際に個人情報とか漏れてるわけでもないので別に問題ないっちゃ問題だいけど。 ちょうどフレームワーク名に使おうか迷っててcakephpにも興味あるんですが cakephpてurlにクエリをつけるとこういうページが表示されるものなんでしょうか? mystone.aeriagames.jp/?
331 名前:nobodyさん mailto:sage [2011/12/27(火) 14:05:11.21 ID:???] うわー、urlに?を含めたこと無かったからびっくり。
332 名前:nobodyさん mailto:sage [2011/12/27(火) 16:06:32.48 ID:???] >>324-325 以前は入っていたような気がするんだけれども、2.xになってから使われてないっぽかったので、よくわからんので質問したんだ 説明不足ですまぬ >>326 さんくす!
333 名前:315 mailto:sage [2011/12/27(火) 17:42:17.16 ID:???] どなたか>>317 についてはわかりませんか? もう何日もググって試してやってますが、 ビューキャッシュファイルにprefixが付きません・・・
334 名前:nobodyさん mailto:sage [2011/12/27(火) 19:36:48.08 ID:???] >>329 webroot/index.phpでパスを指定する
335 名前:nobodyさん mailto:sage [2011/12/28(水) 02:02:45.93 ID:???] >>328 DBから一覧を取得してその中の日付のフォーマット変えたり、 0か1で入っている性別を男と女に変換したりとか。
336 名前:nobodyさん mailto:sage [2011/12/28(水) 07:03:30.26 ID:???] >>330 これは特殊例だな 多分トップページだけCakeのルーティングを外しているか特殊なmod_rewrite書いたりしてるはず ソース読めないんで確かなことは言えないけど。 まあそもそも1.2の初期バージョン使ってるようなサイト参考にされても困る
337 名前:nobodyさん mailto:sage [2011/12/28(水) 09:44:18.78 ID:???] >>335 1.3ならvirtualField使った方が良いのでは。 日付のフォーマット変えるのは自分は表示する時にしてるけど。
338 名前:nobodyさん mailto:sage [2011/12/28(水) 09:59:07.49 ID:???] >>335 DBの値を変更って、SQLのINSERTとかUPDATEかと思った。 DBから引いたデータを加工するなら、viewでやろうがmodelでやろうが好きにすればいい。 そのあたりはpaginateでもfindと同じこと。争点にする意味がわからん。
339 名前:nobodyさん mailto:sage [2011/12/28(水) 12:59:51.45 ID:???] Cakeはデータがただの配列だから、 こういうときつらいよな Yiiはオブジェクトなんだっけ?
340 名前:nobodyさん mailto:sage [2011/12/28(水) 14:11:35.72 ID:???] Cake使ってるWebサービスはあるけど、アプリはあるの?
341 名前:nobodyさん mailto:sage [2011/12/28(水) 14:16:12.40 ID:???] アプリってなんぞ
342 名前:nobodyさん mailto:sage [2011/12/28(水) 14:43:40.02 ID:???] 意味不明ワロタ
343 名前:nobodyさん mailto:sage [2011/12/28(水) 15:50:07.23 ID:???] mixiアプリとかのことかな?
344 名前:nobodyさん mailto:sage [2011/12/28(水) 16:36:45.22 ID:???] すみません。webアプリのことです
345 名前:nobodyさん mailto:sage [2011/12/28(水) 17:11:51.85 ID:???] webサービスとwebアプリの違いは?
346 名前:nobodyさん mailto:sage [2011/12/28(水) 17:18:26.85 ID:???] wikipediaによると ・Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス。 ・ウェブアプリケーション(Web application)は、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。 ウェブアプリケーションの一例としては、ウィキペディアなどで使われているウィキやブログ、電子掲示板、銀行のインターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどを挙げることができる。
347 名前:nobodyさん mailto:sage [2011/12/28(水) 19:42:34.74 ID:???] その定義通りだとして(違和感はあるが)、逆にWEBサービスとして使われてるのを見たことないな
348 名前:nobodyさん mailto:sage [2011/12/28(水) 20:23:56.64 ID:???] >>335 v2.0でもvirtualfieldだな Paginatorのソートは、sqlに投げてるだけっぽいから、 加工後の値でソートしたいなら、virtualfield使うのが一番楽
349 名前:nobodyさん mailto:sage [2011/12/28(水) 22:42:26.99 ID:???] SOAPやRESTfulな環境で使うイメージがわかない。
350 名前:nobodyさん mailto:sage [2011/12/28(水) 22:51:10.97 ID:???] SOAP使ってないとWebサービスにならないのか って、んなわけねーだろ!
351 名前:nobodyさん mailto:sage [2011/12/29(木) 01:39:46.15 ID:???] 俺は↓な風に思ってたけど・・・ Webサービス→mixiとかtwitterとか Webアプリケーション→OpenPNEとかWordpressとか
352 名前:nobodyさん mailto:sage [2011/12/29(木) 03:10:25.40 ID:???] Webサービス∈Webアプリケーション
353 名前:nobodyさん mailto:sage [2011/12/29(木) 04:32:43.50 ID:???] $this->User->save(array( 'id' => $user['User']['id'], 'lastlogin' => date("Y-m-d H:i:s", time()), )); ↑こうやってlastloginにユーザーのログイン時間を保存しているんですが、 ローカルではちゃんと保存されるのに、 全く同じコードをアップロードした本番サーバでは 保存されないのはなぜ??
354 名前:nobodyさん mailto:sage [2011/12/29(木) 08:33:32.46 ID:???] databaseの設定ミスとかじゃないよね?
355 名前:nobodyさん mailto:sage [2011/12/29(木) 10:49:12.41 ID:???] webrootをpublic_htmlに変更し、それ以外を全部ドキュメントルートの上に置くというのは難しいですか?
356 名前:nobodyさん mailto:sage [2011/12/29(木) 10:58:31.41 ID:???] MVCについてお聞きしたいのですが 学年 クラス 生徒 を管理するときに コントローラ・・・学年 アクション・・・・クラス id・・・・・・・・・・・生徒 とするのか コントローラ・・・学年/クラス アクション・・・・・生徒 とするのどちらがよいでしょうか? 前者の場合はモデルへデータを追加するだけで管理できますが 紺者の場合はモデルへデータの追加とアクションの追加を行いますが どちらが定番といえますか?
357 名前:nobodyさん mailto:sage [2011/12/29(木) 12:02:14.47 ID:???] >>353 本番サーバとやらのログを貼らないのはなぜ??
358 名前:nobodyさん mailto:sage [2011/12/29(木) 12:14:03.44 ID:???] >>355 難しくありません。
359 名前:353 mailto:sage [2011/12/29(木) 12:45:18.65 ID:???] >>357 ログとはどのログのことでしょうか?
360 名前:nobodyさん mailto:sage [2011/12/29(木) 12:54:07.59 ID:???] >>356 まともな日本語でおk 「管理」の用法が特殊で意味がわからない あと、MVCについて誤解してないか?
361 名前:nobodyさん mailto:sage [2011/12/29(木) 12:59:47.56 ID:???] >>359 webサーバ、データベース、cakeあたりのログ
362 名前:nobodyさん mailto:sage [2011/12/29(木) 13:01:26.83 ID:???] >>360 分からない奴は黙っていたほうが良い 恥を書いて荒らしなる道に行くから
363 名前:nobodyさん mailto:sage [2011/12/29(木) 13:33:28.56 ID:???] わからないままは恥ずかしいので、 是非教えてください 荒らす気はありません
364 名前:nobodyさん mailto:sage [2011/12/29(木) 14:44:26.04 ID:???] >>356 その例なら学年とクラスは一緒じゃないか? カテゴリ・サブカテゴリの関係性だろ?
365 名前:nobodyさん mailto:sage [2011/12/29(木) 17:29:24.05 ID:???] >>355 public_htmlの位置が変えられない環境ならこの辺参考にがんばれ massat.jp/2007/01/08/110 >>356 その例だと、学年hasManyクラス、クラスhasMany生徒、のデーターベース構成の話になってしまうような ちょっとMVCを誤解している気がする
366 名前:nobodyさん mailto:sage [2011/12/29(木) 17:41:41.88 ID:???] なかなか斬新なMVCの解釈だなw
367 名前:nobodyさん mailto:sage [2011/12/29(木) 19:59:03.95 ID:???] 年末で暇なのか、賑わってるなー。よきかな
368 名前:nobodyさん mailto:sage [2011/12/29(木) 20:06:56.58 ID:???] >>356 学年、クラス、生徒は全部モデルだよ。 正確に言えば、モデルが扱うデータとその属性だよ。 ま普通に考えれば、生徒がたくさん入っている生徒達データがあって、 学年とクラスは、生徒一人ひとりの属性。
369 名前:nobodyさん mailto:sage [2011/12/29(木) 20:09:49.58 ID:???] コントローラはURLとモデルが持っているメソッドへの変換を行うものと考えればいい。 そして、メソッドの戻りをビューに変換する役目も持っている。 コントローラはあくまでURLとデータの変換をするだけで 学年とかクラスとかそんなものを扱う所ではない。
370 名前:nobodyさん mailto:sage [2011/12/30(金) 03:20:30.57 ID:???] >>356 は俺たちの煽り耐性を試してるんだと思う。
371 名前:nobodyさん mailto:sage [2011/12/30(金) 11:04:12.85 ID:???] MVCを勘違いしていることはよく分かる。
372 名前:nobodyさん mailto:sage [2011/12/30(金) 12:04:16.43 ID:???] MVCを理解していない人は非常に多いが、こういう勘違いをする人はレア
373 名前:nobodyさん mailto:sage [2011/12/30(金) 12:56:24.02 ID:???] cookbookさえ読めば解決だと思う
374 名前:nobodyさん mailto:sage [2011/12/30(金) 13:57:03.73 ID:???] MVCでラーメンは作れますか?