1 名前:nobodyさん [2008/12/19(金) 15:52:19 ID:ylogT+7c] ■本家 www.cakephp.org/ APIドキュメント api.cakephp.org/ cookbook(マニュアル) book.cakephp.org/ja the Bakery bakery.cakephp.org/ ■日本語フォーラム cakephp.jp/ ■過去スレ 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 pc11.2ch.net/test/read.cgi/php/1213892680/ 【PHP】フレームワーク CakePHP 3ホール目【本命】 pc11.2ch.net/test/read.cgi/php/1205475360/ 【PHP】フレームワーク CakePHP 2ホール目 pc11.2ch.net/test/read.cgi/php/1194976228/ 【PHP】フレームワーク CakePHP pc11.2ch.net/test/read.cgi/php/1163850802/
371 名前:nobodyさん mailto:sage [2009/01/12(月) 23:07:20 ID:???] >>368 そうか? データのやりとりするんだから、モデルだと思うけど? まあ場合にもよるだろうけど
372 名前:nobodyさん mailto:sage [2009/01/12(月) 23:11:10 ID:???] セッションはモデルじゃないよ データを永続化するのがモデルであって セッションってのはデータでhiddenで引き回してるのと同じようなことだから
373 名前:nobodyさん mailto:sage [2009/01/12(月) 23:33:55 ID:???] なんでこんな使いにくくてバギーなcakephpが人気あるんかね? たしかに、とっつきやすさはsymfonyやzendよりも上だと思うが それだけなんだよね。 PHP使ってるやつはプログラム自体初心者が多いんだろね。 チュートリアル作って終わりなやつが多いんじゃね?
374 名前:nobodyさん mailto:sage [2009/01/12(月) 23:39:43 ID:???] 玄人の言語で作れば?
375 名前:nobodyさん mailto:sage [2009/01/12(月) 23:44:35 ID:???] 確かにPHPを使う意味なんてないんだよね フレームワークを使うほどの開発になった時点で
376 名前:nobodyさん mailto:sage [2009/01/12(月) 23:50:55 ID:???] 殆どのものはレンタルサーバで動かすんだからPHPかPerlじゃないと動かんわね 専用サーバならJavaにした方が楽だし
377 名前:nobodyさん mailto:sage [2009/01/12(月) 23:52:44 ID:???] >>375 いいこというね〜 PHPが最高に輝く使い方だね。
378 名前:nobodyさん mailto:sage [2009/01/12(月) 23:56:14 ID:???] 好きな言語すら入れられない環境の方がかなりマイナーだと思うよ 個人だろうと企業だろうと普通はその程度の自由度はある環境でやってるよ
379 名前:nobodyさん mailto:sage [2009/01/13(火) 00:36:35 ID:???] 企業で大規模にやるような開発でCakeやRoRみたいなのは使わないと思うよ レンタルサーバで動かすCMSとかDBのCRUDがメインのシステムならぴったりだけどさ
380 名前:nobodyさん mailto:sage [2009/01/13(火) 11:22:28 ID:???] セキュリティ面のバグの多さからWWWに出す時点でCakeは良くない
381 名前:nobodyさん mailto:sage [2009/01/13(火) 11:48:16 ID:???] >>379 TwitterやCookPad、楽天でもRoRを使ってるのすら知らんのか。 そういえばここCakePHPスレだったなw
382 名前:nobodyさん mailto:sage [2009/01/13(火) 13:31:48 ID:???] >>379 > DBのCRUDがメインのシステム ほとんどの会社で必要とされるシステムって、それだぞ?w
383 名前:nobodyさん mailto:sage [2009/01/13(火) 15:39:41 ID:???] RoRを覚えるのが面倒というのもあるな Ruby動かせないときもあるしなあ
384 名前:nobodyさん mailto:sage [2009/01/13(火) 21:53:50 ID:???] >>382 実際作ってみると業務システムのパターンは極めて限られていることがわかるよね。
385 名前:nobodyさん mailto:sage [2009/01/13(火) 22:27:13 ID:???] そうでもないけどな データ登録以上にワークフローと帳票が多い
386 名前:nobodyさん mailto:sage [2009/01/13(火) 22:33:33 ID:???] ワークフローと帳票といっても 結局はCRUDだしなぁ。
387 名前:nobodyさん mailto:sage [2009/01/13(火) 22:58:25 ID:???] 可哀想な人が来たな
388 名前:nobodyさん mailto:sage [2009/01/13(火) 23:03:28 ID:???] >>387 その人、いらっしゃ〜いw
389 名前:nobodyさん mailto:sage [2009/01/13(火) 23:58:47 ID:???] パターンは極めて限られていると見積もったCRUDシステムを 作るたびに炎上させる優秀な技術者様達
390 名前:nobodyさん mailto:sage [2009/01/14(水) 13:24:41 ID:???] 1つのテーブルにいろいろな画面(コントローラ)からアクセスする場合、 モデルは、テーブルと対になるようにして1つのモデルにするのがよいか、 それともコントローラと対にするか、どちらが一般的でしょうか? 例えば受注テーブルがあり、 あるコントローラでは受注数を表示するのがメインの処理で、 また別のコントローラでは受注金額を表示するのがメインの処理、 のような場合、受注テーブルのモデルを1つ作成するのか、それとも コントローラ毎に作るのか…。
391 名前:nobodyさん mailto:sage [2009/01/14(水) 13:42:37 ID:???] おまえはMVCの基本についてすべて一つ一つt質問するつもりか
392 名前:nobodyさん mailto:sage [2009/01/14(水) 13:44:19 ID:???] >>390 無論、モデルはひとつ。
393 名前:nobodyさん mailto:sage [2009/01/14(水) 13:45:45 ID:???] >>390 コントローラーってのは要するに人がプログラムにアクセスする時のURLなわけよ。 だから人から見てわかりやすけりゃ良いわけで、モデルと対になってる必要なんて無い。 ってのが俺の考え。 逆に同じテーブルにモデルがいくつもあったらプログラム作る時に混乱するんじゃない? それぞれ特殊なfindメソッドでも作ってるんなら別だけど。
394 名前:nobodyさん mailto:sage [2009/01/14(水) 14:52:22 ID:???] サブホストや接続IPによってDB接続先を変える方法知ってる?
395 名前:nobodyさん mailto:sage [2009/01/14(水) 14:53:24 ID:???] やっぱりモデルは1つにまとめるべきなんですね。 今回質問したのは、>>393 の 「それぞれ特殊なfindメソッドでも作ってるんなら別だけど。 」 がまさしくそれで、取得対象のテーブルは1つなんですけど、 そのデータの取得方法や見せ方が全然違って、ただ当然コントローラは 個別に存在するので、 1つのテーブルを元にその見せ方毎にモデルを作りモデルの中で、 var $name = 'table'; としておきつつ、 それぞれの取得するためのメソッドを作成していこうかな、と思い作りはじ めた矢先、取得テーブルは1つなので、そのモデルに全部メソッドをまとめた ほうがいいのか?と迷いはじめてしまい…。 テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか…。 まだまだ精進がたりませんね、大変すみませんでした。
396 名前:nobodyさん mailto:sage [2009/01/14(水) 15:08:08 ID:???] >>394 ttp://d.hatena.ne.jp/charly24/20070512/1178956046
397 名前:nobodyさん mailto:sage [2009/01/14(水) 15:11:54 ID:???] >>395 findメソッドは、カンタンにオーバーライドできる テンプレの↓参照 CakePHPを使ったMVC設計のベストプラクティス - Sooey ttp://www.sooey.com/journal/2008/03/26/717/
398 名前:nobodyさん mailto:sage [2009/01/14(水) 15:49:49 ID:???] >>395 >テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか 一律的な分け方をすると後で縛りがきつくなるから 機能目的によってバランスよく分別した方がよい
399 名前:nobodyさん mailto:sage [2009/01/14(水) 15:51:45 ID:???] むしろ厳密に言えば両方違う 2モデルを1つのテーブルに格納することが可能だから
400 名前:nobodyさん mailto:sage [2009/01/14(水) 15:59:26 ID:???] テーブルやモデルの対に関して議論することがアホらしいw 後退的議論で無意味
401 名前:nobodyさん mailto:sage [2009/01/14(水) 16:02:02 ID:???] どんなケースも可能だから 何を作るか?どんな機能を作るかを前提してから モデルとテーブルの対の議論をしないと 抜け穴からのもぐら叩き合戦になるよ
402 名前:nobodyさん mailto:sage [2009/01/14(水) 20:32:29 ID:???] 1.1と1.2って大分違いますか? ガイドブック買ってやってみたけど早々に躓いて しまいました。
403 名前:nobodyさん mailto:sage [2009/01/14(水) 21:28:26 ID:???] 1.1と1.2は大分違うと思う。 ガイドブックで1.2で始めるのは初心者にはつらいと思う。 「CakePHP徹底入門」は1.2で書いてあるから1.2入門者にお勧め。 ガイドブックも良著だから、1.2の入門が終わってから読み直す ことを勧めるなあ。
404 名前:nobodyさん mailto:sage [2009/01/15(木) 04:27:43 ID:???] 「CakePHP徹底入門」のamazonのレビューがよくないというか一人しか書いていない それも星一つ。自分は少し立ち読みしただけだから何とも言えないが・・ ガイドブックは評価が高いけど
405 名前:nobodyさん mailto:sage [2009/01/15(木) 12:14:25 ID:???] ぶっちゃけ、公式Webの情報で十分なのがPHP界隈の良いところだとおもうんだが。
406 名前:nobodyさん mailto:sage [2009/01/15(木) 18:02:47 ID:???] >>389 > パターンは極めて限られていると見積もったCRUDシステムを > 作るたびに炎上させる優秀な技術者様達 なんで炎上させないといけないんだよw お前の会社か?それ。
407 名前:nobodyさん mailto:sage [2009/01/15(木) 19:16:12 ID:???] viewのキャッシュする直前にキャッシュする対象をいじりたいんだけど なんかいい方法あるのかな
408 名前:nobodyさん mailto:sage [2009/01/15(木) 23:13:14 ID:???] SQLiteとMySQLを同時に使うのって可能?
409 名前:nobodyさん mailto:sage [2009/01/15(木) 23:16:50 ID:???] 可能。
410 名前:nobodyさん mailto:sage [2009/01/16(金) 00:17:54 ID:???] なにそれ、どうやんだ?
411 名前:nobodyさん mailto:sage [2009/01/16(金) 00:21:09 ID:???] DATABASE_CONFIGに複数設定して切り替えるだけだろ
412 名前:nobodyさん mailto:sage [2009/01/16(金) 01:45:44 ID:???] そりゃだるいな
413 名前:nobodyさん mailto:sage [2009/01/16(金) 16:24:26 ID:???] >>412 モデルに使用する、データベースを指定する以外で、 だるく無い方法があるのか?
414 名前:nobodyさん mailto:sage [2009/01/16(金) 17:30:29 ID:???] >>413 アホはほっとけ
415 名前:nobodyさん mailto:sage [2009/01/16(金) 18:16:16 ID:???] Model::$validateで値そのものを利用して'message'を動的に設定ってできますか? 'この番号は使用できません'って出力してdata[]にそのまま残すのも間抜けなので、 data[]を使用した'message'を設定してdata[]消したいんですけどよく分かりません 通常ルールでのチェックも行っているので、View側でエラーメッセージチェックしてから 特定のエラーメッセージのときだけdata[]からメッセージ作成して input value= にセットされないように処理するって何か変な気がしたので
416 名前:nobodyさん mailto:sage [2009/01/16(金) 18:30:22 ID:???] メソッド内でうまいことエラーメッセージを書き換えられればいいんだろうけど 説明下手なきがするのでやりたいこと 入力フォーム→結果の表示フォームとエラー [ab]→[ab]数字で入力しやがれ [25]→[25]25は使えねえぜ
417 名前:nobodyさん mailto:sage [2009/01/16(金) 21:29:52 ID:???] emailコンポーネントって文字化けするよね しかも普通にPHP標準のメール送信機能使うと化けないケースで化けたりするから困る また組み込みライブラリの糞ソースを修正する作業が始まるのか・・・
418 名前:nobodyさん mailto:sage [2009/01/16(金) 21:37:31 ID:???] emailコンポーネントを継承して 問題ないようにしているけど? オブジェクト指向になっているおかげで いくつかのメソッドをオーバーライドするだけですんだ。
419 名前:nobodyさん mailto:sage [2009/01/16(金) 21:40:49 ID:???] 文字化けしないよ別に ファイルの文字コードとか問題ないの?
420 名前:nobodyさん mailto:sage [2009/01/16(金) 22:28:03 ID:???] toに全角使うと化ける 本文も特定のパターンで化ける
421 名前:nobodyさん mailto:sage [2009/01/16(金) 22:36:11 ID:???] toはエンコしなきゃ化けるだろそりゃ
422 名前:nobodyさん mailto:sage [2009/01/16(金) 22:38:28 ID:???] だからそれをコンポーネント内部でなんでやってないの?って話だよ
423 名前:nobodyさん mailto:sage [2009/01/16(金) 22:39:12 ID:???] toってset()じゃなくてプロパティに直接設定するようになってるけど どうやってエンコはさめばいいの? 本体のコード見て解析してエンコードはさむくらいしか思いつかないんだけど。
424 名前:nobodyさん mailto:sage [2009/01/16(金) 22:42:13 ID:???] 最後に送信するときにでもやればいい。
425 名前:nobodyさん mailto:sage [2009/01/16(金) 22:47:48 ID:???] >>422 世の中には日本語以外もあるわけでな 必要なら日本人が修正してコミットすべき部分だろうに
426 名前:nobodyさん mailto:sage [2009/01/16(金) 22:49:09 ID:???] そんなに不満だらけなら他のFW使えばいいじゃん メールのエンコードも完璧なFWをさ
427 名前:nobodyさん mailto:sage [2009/01/17(土) 10:19:42 ID:???] 1.2.1
428 名前:nobodyさん mailto:sage [2009/01/17(土) 11:36:23 ID:???] お、今度はstableを謳ってる # If you are using AuthComponent without SecurityComponent you should update to CakePHP 1.2.1.8004 asap (gwoo) だってさ
429 名前:nobodyさん mailto:sage [2009/01/17(土) 11:38:12 ID:???] 1.2 CheatSheet キタ━━━━(゚∀゚)━━━━!!!! cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
430 名前:nobodyさん mailto:sage [2009/01/17(土) 13:58:26 ID:???] >>428 なにがかわったんだ?
431 名前:nobodyさん mailto:sage [2009/01/17(土) 14:40:37 ID:???] >>429 これはいいね。早速プリントした。 あと、毎回html->linkの何番目をfalseだっけ?ってマニュアル見なきゃならん俺のために 付属のヘルパー分もお願いしたい。
432 名前:nobodyさん mailto:sage [2009/01/18(日) 11:31:02 ID:???] >>430 groups.google.com/group/cake-php/browse_thread/thread/659682805f3d71d7 Essentially, an attacker may be able to obtain credentials as the first user of the system. If you are interested in testing your site, you can use the SQL Inject Me plugin for Firefox
433 名前:nobodyさん mailto:sage [2009/01/19(月) 16:13:21 ID:???] 会員登録時とかで、パスワードが勝手にハッシュ化されるけど 確認画面いって入力画面に戻るとハッシュ化されたものがパスワードのとこに入る そしてまた確認画面に行くと再度ハッシュ化される 登録されるのは2度ハッシュ化されたデータ 当然認証は通らない これはどうすれば?
434 名前:nobodyさん mailto:sage [2009/01/19(月) 16:21:13 ID:???] パスワード消す
435 名前:nobodyさん mailto:sage [2009/01/19(月) 16:23:37 ID:???] 詳しく
436 名前:nobodyさん mailto:sage [2009/01/19(月) 17:12:40 ID:???] 入力画面に戻るときに消していいんなら formへるぱーで'value'=>false指定すればよろし
437 名前:nobodyさん mailto:sage [2009/01/19(月) 17:15:56 ID:???] 再入力させるのはなぁ 既にハッシュ化してるんだからそのまま入れてもセキュリティ上問題無いのに ハッシュ化されていれば再ハッシュ化は行わないようになってくれてたら良かった フォームのパスワードの初期値と送信されたデータが同じだったらハッシュ化はしない とするだけで出来たはずなのにな
438 名前:nobodyさん mailto:sage [2009/01/19(月) 17:38:24 ID:???] ちょっとコード読んでみたけど ハッシュ化のタイミングでセッションは既に今送信されたデータに書き換えられてて 元あったものとの比較が出来なくなってる これ以上手間が要るならめんどくさいなー
439 名前:nobodyさん mailto:sage [2009/01/19(月) 17:45:57 ID:???] 確認用の入力分を使えばいいんじゃねえの?
440 名前:nobodyさん mailto:sage [2009/01/19(月) 18:11:18 ID:???] 確認入力のバリデーションと競合して分け分かんなくなってきた どういう仕様になってるんだろ passwordフィールドはハッシュ化されるが password_confirmはハッシュ化されない おかげで確認画面にいってから戻るとパスワードが違うと言うエラーが出る問題も絡んでくる
441 名前:nobodyさん mailto:sage [2009/01/19(月) 18:17:05 ID:???] やはり確認用の入力を使うと言う手段が本筋じゃないな passwordもpassword_confirmも同様にハッシュ化して フォームの初期値から変更がなければハッシュ化は行わない、 と言う設計にすべきだと思う でもこれをやるには今のAuthコンポーネントの仕様からじゃだいぶ手間がかかる
442 名前:nobodyさん mailto:sage [2009/01/19(月) 18:26:26 ID:???] つーかもう Authの自動ハッシュ化を無くして 手動でハッシュ化するのが一番楽だわ
443 名前:nobodyさん mailto:sage [2009/01/19(月) 19:02:35 ID:???] cakeは謙虚な心がないと使いこなせない
444 名前:nobodyさん mailto:sage [2009/01/19(月) 19:20:43 ID:???] ハッシュ化なんてユーザパスワードくらいでしかやってないし 自動ハッシュ化止めてセーブ時とログイン時にハッシュ化するようにしたらできたくせえ!
445 名前:nobodyさん mailto:sage [2009/01/19(月) 22:36:21 ID:???] form部分は name="raw_password" name="raw_password_confirm" にしといて、 validateでは、 raw_passwordとraw_password_confirmを比較 saveの前にpassword = raw_passwordしとくのは?
446 名前:nobodyさん mailto:sage [2009/01/19(月) 22:42:10 ID:???] それもいいかもね コンポーネントに手入れ無くて良いし でもAuthで暗黙的にハッシュ化されるわりにそれを意識したコーディングになってるから 違和感はあるけどね それなら明示的に書く方が、とおもう
447 名前:nobodyさん mailto:sage [2009/01/20(火) 00:34:26 ID:???] Validationで戻ったときはパスワードは再入力させる方が一般的だと思うけどね。
448 名前:nobodyさん mailto:sage [2009/01/20(火) 00:36:53 ID:???] あぁ、そういう話か。 普通再入力の際にはパスワードは消えてるでしょ
449 名前:nobodyさん mailto:sage [2009/01/20(火) 02:09:06 ID:???] エレメントを呼び出すんじゃなくて ビューからアクションを呼び出す事って出来ないのかな?
450 名前:nobodyさん mailto:sage [2009/01/20(火) 02:15:23 ID:???] 事故解決
451 名前:nobodyさん [2009/01/20(火) 02:47:07 ID:W42hdWVL] iis,oracle,php5インストール後、 cakePHP入れて、ブログのチュートリアルやってんだけど、 ビュー作って確認するところのテーブル一覧表示で日本語データが表示されません。 半角英数ですと表示されます。数値、日時も問題なく表示されています。 db内には、正しい全角データが入っているのですが、 なぜでしょう?
452 名前:nobodyさん mailto:sage [2009/01/20(火) 02:49:30 ID:???] >>451 ソースの文字コードとMySQLの文字コード確認
453 名前:nobodyさん [2009/01/20(火) 02:50:47 ID:W42hdWVL] 両方、utf8です。
454 名前:nobodyさん mailto:sage [2009/01/20(火) 03:21:49 ID:???] そもそもoracleか・・
455 名前:nobodyさん mailto:sage [2009/01/20(火) 11:56:56 ID:???] >>452 oracleだと書いてあるだろボケ なにがMySQLの文字コードだよ
456 名前:nobodyさん mailto:sage [2009/01/20(火) 13:54:45 ID:???] >>451 phpのinternal_encodingとかその辺の設定確認 あとcakeを介さず直接接続→出力が文字化けするか否か確認
457 名前:nobodyさん mailto:sage [2009/01/20(火) 15:52:01 ID:???] >>455 www
458 名前:nobodyさん mailto:sage [2009/01/20(火) 16:57:25 ID:???] あれ、一人だけID出てるな
459 名前:nobodyさん [2009/01/20(火) 17:03:38 ID:b4+xy3zg] sage無きゃ出るでしょ
460 名前:nobodyさん mailto:sage [2009/01/20(火) 17:07:06 ID:???] なるほどそういうことか
461 名前:nobodyさん mailto:hage [2009/01/20(火) 17:13:23 ID:???] sage無くても出ないけどね
462 名前:nobodyさん mailto:sage [2009/01/20(火) 17:41:48 ID:???] 1.2なってからのfindやinputの修正は地味だけど良いね 非常に分かりやすくなった
463 名前:nobodyさん mailto:sage [2009/01/21(水) 01:59:22 ID:???] scaffoldだとAuthコンポーネントってちゃんと働かない? webルートにアクセスすると、一応/users/loginへ リダイレクトされるんだけど、そこでurlを/users/indexって 書き替えると、ログインしてなくてもユーザーの一覧が 見えてしまう。(´・ω・`)
464 名前:nobodyさん mailto:sage [2009/01/21(水) 05:54:40 ID:???] Controllerになんか書くんじゃなかったっけ。
465 名前:nobodyさん mailto:sage [2009/01/21(水) 10:09:05 ID:???] >>464 Controllerには許可する方を書くわけだから不要だと思う >>463 ほかのControllerでも同じ症状なら、scaffoldが原因だろうけど、、、
466 名前:nobodyさん mailto:sage [2009/01/21(水) 10:42:49 ID:???] 空のindexを書くと、indexにはAuthが効く。 やっぱ、scaffoldが原因かなぁ。 ちゃんと全部自分で書かないとダメか。
467 名前:nobodyさん mailto:sage [2009/01/21(水) 10:48:54 ID:???] action内でscaffoldのフローに飛ばせないのが、辛いよね この問題にぶちあたって、結局1から書くことになる すべてのactionを
468 名前:nobodyさん mailto:sage [2009/01/21(水) 10:55:35 ID:???] 試してないけどさ beforeFilter()でaction名を見て、適宜login()に飛ばしてみたら?
469 名前:nobodyさん mailto:sage [2009/01/21(水) 11:01:21 ID:???] if (in_array($this->action ,a('index' ,'etc')) && !$this->Auth->user()) { // リダイレクト }
470 名前:nobodyさん mailto:sage [2009/01/21(水) 11:34:17 ID:???] 認証掛けるくらいなんだから、うかつに編集されないように scaffoldを使わないのが正しいやり方だと思う。思うけどね。
471 名前:451 mailto:sage [2009/01/21(水) 16:59:21 ID:???] 事後報告です。 >>456 > >>451 > phpのinternal_encodingとかその辺の設定確認 この辺りの設定も甘い所がありましたが、utf8で調整するも変わりませんでした。 で切り分けるためにも下を行ったのですが・・・。 > あとcakeを介さず直接接続→出力が文字化けするか否か確認 直接データもらうと、sjisで出力されてきて意味がわからず悩みました。 知っている人はなんでもないんでしょうけど。 で、結構な時間を費やしDBからデータ出力の時点があやしいとなり、 いろいろググってたら判明! CAKEインストの時のDB設定で文字コード設定があることがわかり、 (設定した時は、どこぞのブログの設定をコピペしてきたんで文字コードを 設定している意識がなかったorz)確認するとsjisになってた、でこれをutf8へ 指定して、cakeの問題無くDBデータが表示されることが確認出来た。 で、ここで疑問が直接もらうとなぜSJISでもらうのか、 恐らくcakeでsjisからutf8へ文字コード変換してることになるんだと思うけど、 結局、oracleが出力文字コードを変えるようで、OSの環境変数を設定して、 NLS_LANG=JAPANESE_JAPAN.AL32UTF8 問題無く直でもutf8で出力されることを確認。 ふー時間くったー。 途中oracleの調子が悪くなって、再インストに見舞われるし。 チュートリアルを進めよう〜。