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

【PHP】フレームワーク CakePHP 5ホール目【v1.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/19(金) 15:52:19ID:ylogT+7c
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/

■日本語フォーラム
http://cakephp.jp/


■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0342nobodyさん2009/01/12(月) 17:10:38ID:???
>>341

www

それならバグではないかもなwww

そうか、バグじゃないのか〜
使えないFWだな〜
0343nobodyさん2009/01/12(月) 17:11:01ID:???
フレームワーク使ってて規約はずれたら動かなくなったってそっちの方が初心者だろ
0344nobodyさん2009/01/12(月) 17:11:49ID:???
機能不足、仕様が変、というのが正しいな
バグと言っても良いレベルのものもたくさんあるが
組み込みで提供されてる機能が競合するのはバグと言っても良いだろ

>>339
偏屈こねる前に10回くらい読み直せ
0345nobodyさん2009/01/12(月) 17:16:56ID:???
いやだから本当にバグだと思うなら本家に報告しなよ
0346nobodyさん2009/01/12(月) 17:17:09ID:???
>>343

そうだね

公式ドキュメントの半分以上は無視したほうがいいね!
設定もなんにも変えないほうがいいね!

www
0347nobodyさん2009/01/12(月) 17:20:07ID:???
報告したところで今やってる案件には意味ないし
次は絶対に使わないから
Cakeの開発スピードからして見つけたバグ全部修正されるのに半年はかかりそうw
0348nobodyさん2009/01/12(月) 17:20:48ID:???
間違えてCakeなんかを使ってしまう人を増やさないようにしないとな
0349nobodyさん2009/01/12(月) 17:21:25ID:???
>>347

きみは別人だろw

きみもいやになったのか?
0350nobodyさん2009/01/12(月) 17:21:58ID:???
1.2が公式にリリースされて危機感を持っている奴がいるらしいな
どのフレームワークの信者だ
0351nobodyさん2009/01/12(月) 17:23:00ID:???
>>347

次なに使うの?
0352nobodyさん2009/01/12(月) 17:23:19ID:???
>>349
別人?なにを言ってるんだ
おまえは誰か特定の相手に話しかけてるのか?こんな場所で?

俺は今回の話題ではCakeはバグ大杉使えないFW派だよ
0353nobodyさん2009/01/12(月) 17:23:30ID:???
まぁこれからCake使うやつに助言

規約からはずれたことはするな
でも、それじゃあ大した物は作れない

組み込みのライブラリは使うな
全部自分で一から書け

FW使う意味ねーw
まぁぱっとみ使いやすいとは思うんだけどね
ここまでバグ多いとな…
0354nobodyさん2009/01/12(月) 17:23:49ID:???
>>351
SAStrutsかDjango
0355nobodyさん2009/01/12(月) 17:25:25ID:???
ちなみにCakeはオブジェクト指向じゃないって話あったけど
問題なのはAPIじゃなくてコアのコード内部なんだよね
ハックするのも一苦労

あのスパゲッティな有様じゃCakeの将来は危ういよ
0356nobodyさん2009/01/12(月) 17:26:23ID:???
というかPHPのFWはまともなのがないな

Yiiとかってどうよ
0357nobodyさん2009/01/12(月) 17:54:39ID:???
>>354
レンタルサーバで動かす気ない人か
0358nobodyさん2009/01/12(月) 17:55:17ID:???
PHPでオブジェクト指向ってもっさりフレームワークの登竜門だろw
0359nobodyさん2009/01/12(月) 17:58:23ID:???
Cakeは既にあらゆるフレームワークの中で最も重い部類
0360nobodyさん2009/01/12(月) 18:05:28ID:???
で、なんかいいのないのか?

兄弟とか言われてるCIは、命名規則に統一性が乏しいし
0361nobodyさん2009/01/12(月) 18:06:17ID:???
>>359
0362nobodyさん2009/01/12(月) 19:32:11ID:???
でも、世界でsymfony、zend+frameworkを抜き、最も注目されているPHP FWという事実は
どう理解すればいいの?
http://www.google.com/trends?q=cakephp%E3%80%81symfony%E3%80%81zend+framework%E3%80%81mojavi%E3%80%81ethna
0363nobodyさん2009/01/12(月) 19:35:28ID:???
PHPのユーザ層が重視するのは簡単に導入できる事と
HOWTO情報の多さだからでしょ
使ってる人たちはCakeしか使ったことないんじゃないの
0364nobodyさん2009/01/12(月) 19:40:29ID:???
PHPったって殆どの人は楽天やGREEを作る訳じゃないんだから
重さって気にする意味無いよね
重さで言えばRoRとか死ぬほど重いんだし
0365nobodyさん2009/01/12(月) 19:43:30ID:???
重いのは誰も問題にしてないけどね
0366nobodyさん2009/01/12(月) 20:59:16ID:???
すみません>>298なんですが
$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5'));
で横幅のせまいtextareaを表示したいのですが、何かヒントありませんか?
0367nobodyさん2009/01/12(月) 21:10:40ID:???
ところで、セッションってモデルだと思うんだが、
なんで、モデルで使えないのかね
0368nobodyさん2009/01/12(月) 21:13:12ID:???
セッションはモデルじゃねーよw
0369nobodyさん2009/01/12(月) 22:33:10ID:???
>>366
cake.generic.css
input, textarea {
width: 100%; ←これ?
}
0370nobodyさん2009/01/12(月) 22:57:16ID:???
>>369
app/webroot/css/cake.generic.css
input, textarea {
  /* width: 100%; */
}
width: 100%をコメントにすることで
$form->input('honbun', array('type'=>'textarea', 'cols'=>'80', 'rows'=>'5'));
textareaの横幅(cols)設定が有効になるようになりました。ありがとうございました。
合わせて、
$form->input('meado', array('type'=>'text', 'size'=>'50'));
のsize設定も有効になり二重の喜びです。ありがとうございました。
0371nobodyさん2009/01/12(月) 23:07:20ID:???
>>368

そうか?
データのやりとりするんだから、モデルだと思うけど?
まあ場合にもよるだろうけど
0372nobodyさん2009/01/12(月) 23:11:10ID:???
セッションはモデルじゃないよ
データを永続化するのがモデルであって
セッションってのはデータでhiddenで引き回してるのと同じようなことだから
0373nobodyさん2009/01/12(月) 23:33:55ID:???
なんでこんな使いにくくてバギーなcakephpが人気あるんかね?
たしかに、とっつきやすさはsymfonyやzendよりも上だと思うが
それだけなんだよね。
PHP使ってるやつはプログラム自体初心者が多いんだろね。
チュートリアル作って終わりなやつが多いんじゃね?
0374nobodyさん2009/01/12(月) 23:39:43ID:???
玄人の言語で作れば?
0375nobodyさん2009/01/12(月) 23:44:35ID:???
確かにPHPを使う意味なんてないんだよね
フレームワークを使うほどの開発になった時点で
0376nobodyさん2009/01/12(月) 23:50:55ID:???
殆どのものはレンタルサーバで動かすんだからPHPかPerlじゃないと動かんわね
専用サーバならJavaにした方が楽だし
0377nobodyさん2009/01/12(月) 23:52:44ID:???
>>375
いいこというね〜
PHPが最高に輝く使い方だね。
0378nobodyさん2009/01/12(月) 23:56:14ID:???
好きな言語すら入れられない環境の方がかなりマイナーだと思うよ
個人だろうと企業だろうと普通はその程度の自由度はある環境でやってるよ
0379nobodyさん2009/01/13(火) 00:36:35ID:???
企業で大規模にやるような開発でCakeやRoRみたいなのは使わないと思うよ
レンタルサーバで動かすCMSとかDBのCRUDがメインのシステムならぴったりだけどさ
0380nobodyさん2009/01/13(火) 11:22:28ID:???
セキュリティ面のバグの多さからWWWに出す時点でCakeは良くない
0381nobodyさん2009/01/13(火) 11:48:16ID:???
>>379
TwitterやCookPad、楽天でもRoRを使ってるのすら知らんのか。

そういえばここCakePHPスレだったなw
0382nobodyさん2009/01/13(火) 13:31:48ID:???
>>379
> DBのCRUDがメインのシステム

ほとんどの会社で必要とされるシステムって、それだぞ?w
0383nobodyさん2009/01/13(火) 15:39:41ID:???
RoRを覚えるのが面倒というのもあるな
Ruby動かせないときもあるしなあ
0384nobodyさん2009/01/13(火) 21:53:50ID:???
>>382
実際作ってみると業務システムのパターンは極めて限られていることがわかるよね。
0385nobodyさん2009/01/13(火) 22:27:13ID:???
そうでもないけどな
データ登録以上にワークフローと帳票が多い
0386nobodyさん2009/01/13(火) 22:33:33ID:???
ワークフローと帳票といっても
結局はCRUDだしなぁ。
0387nobodyさん2009/01/13(火) 22:58:25ID:???
可哀想な人が来たな
0388nobodyさん2009/01/13(火) 23:03:28ID:???
>>387
その人、いらっしゃ〜いw
0389nobodyさん2009/01/13(火) 23:58:47ID:???
パターンは極めて限られていると見積もったCRUDシステムを
作るたびに炎上させる優秀な技術者様達
0390nobodyさん2009/01/14(水) 13:24:41ID:???
1つのテーブルにいろいろな画面(コントローラ)からアクセスする場合、
モデルは、テーブルと対になるようにして1つのモデルにするのがよいか、
それともコントローラと対にするか、どちらが一般的でしょうか?

例えば受注テーブルがあり、
あるコントローラでは受注数を表示するのがメインの処理で、
また別のコントローラでは受注金額を表示するのがメインの処理、
のような場合、受注テーブルのモデルを1つ作成するのか、それとも
コントローラ毎に作るのか…。
0391nobodyさん2009/01/14(水) 13:42:37ID:???
おまえはMVCの基本についてすべて一つ一つt質問するつもりか
0392nobodyさん2009/01/14(水) 13:44:19ID:???
>>390
無論、モデルはひとつ。
0393nobodyさん2009/01/14(水) 13:45:45ID:???
>>390
コントローラーってのは要するに人がプログラムにアクセスする時のURLなわけよ。
だから人から見てわかりやすけりゃ良いわけで、モデルと対になってる必要なんて無い。
ってのが俺の考え。
逆に同じテーブルにモデルがいくつもあったらプログラム作る時に混乱するんじゃない?
それぞれ特殊なfindメソッドでも作ってるんなら別だけど。
0394nobodyさん2009/01/14(水) 14:52:22ID:???
サブホストや接続IPによってDB接続先を変える方法知ってる?
0395nobodyさん2009/01/14(水) 14:53:24ID:???
やっぱりモデルは1つにまとめるべきなんですね。

今回質問したのは、>>393 の
「それぞれ特殊なfindメソッドでも作ってるんなら別だけど。 」
がまさしくそれで、取得対象のテーブルは1つなんですけど、
そのデータの取得方法や見せ方が全然違って、ただ当然コントローラは
個別に存在するので、
1つのテーブルを元にその見せ方毎にモデルを作りモデルの中で、
var $name = 'table'; としておきつつ、
それぞれの取得するためのメソッドを作成していこうかな、と思い作りはじ
めた矢先、取得テーブルは1つなので、そのモデルに全部メソッドをまとめた
ほうがいいのか?と迷いはじめてしまい…。

テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか…。

まだまだ精進がたりませんね、大変すみませんでした。
0396nobodyさん2009/01/14(水) 15:08:08ID:???
>>394
ttp://d.hatena.ne.jp/charly24/20070512/1178956046
0397nobodyさん2009/01/14(水) 15:11:54ID:???
>>395
findメソッドは、カンタンにオーバーライドできる

テンプレの↓参照
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
0398nobodyさん2009/01/14(水) 15:49:49ID:???
>>395
>テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか

一律的な分け方をすると後で縛りがきつくなるから
機能目的によってバランスよく分別した方がよい

0399nobodyさん2009/01/14(水) 15:51:45ID:???
むしろ厳密に言えば両方違う
2モデルを1つのテーブルに格納することが可能だから
0400nobodyさん2009/01/14(水) 15:59:26ID:???
テーブルやモデルの対に関して議論することがアホらしいw
後退的議論で無意味
0401nobodyさん2009/01/14(水) 16:02:02ID:???
どんなケースも可能だから
何を作るか?どんな機能を作るかを前提してから
モデルとテーブルの対の議論をしないと
抜け穴からのもぐら叩き合戦になるよ
0402nobodyさん2009/01/14(水) 20:32:29ID:???
1.1と1.2って大分違いますか?
ガイドブック買ってやってみたけど早々に躓いて
しまいました。
0403nobodyさん2009/01/14(水) 21:28:26ID:???
1.1と1.2は大分違うと思う。
ガイドブックで1.2で始めるのは初心者にはつらいと思う。
「CakePHP徹底入門」は1.2で書いてあるから1.2入門者にお勧め。
ガイドブックも良著だから、1.2の入門が終わってから読み直す
ことを勧めるなあ。
0404nobodyさん2009/01/15(木) 04:27:43ID:???
「CakePHP徹底入門」のamazonのレビューがよくないというか一人しか書いていない
それも星一つ。自分は少し立ち読みしただけだから何とも言えないが・・
ガイドブックは評価が高いけど
0405nobodyさん2009/01/15(木) 12:14:25ID:???
ぶっちゃけ、公式Webの情報で十分なのがPHP界隈の良いところだとおもうんだが。
0406nobodyさん2009/01/15(木) 18:02:47ID:???
>>389
> パターンは極めて限られていると見積もったCRUDシステムを
> 作るたびに炎上させる優秀な技術者様達

なんで炎上させないといけないんだよw
お前の会社か?それ。
0407nobodyさん2009/01/15(木) 19:16:12ID:???
viewのキャッシュする直前にキャッシュする対象をいじりたいんだけど
なんかいい方法あるのかな
0408nobodyさん2009/01/15(木) 23:13:14ID:???
SQLiteとMySQLを同時に使うのって可能?
0409nobodyさん2009/01/15(木) 23:16:50ID:???
可能。
0410nobodyさん2009/01/16(金) 00:17:54ID:???
なにそれ、どうやんだ?
0411nobodyさん2009/01/16(金) 00:21:09ID:???
DATABASE_CONFIGに複数設定して切り替えるだけだろ
0412nobodyさん2009/01/16(金) 01:45:44ID:???
そりゃだるいな
0413nobodyさん2009/01/16(金) 16:24:26ID:???
>>412
モデルに使用する、データベースを指定する以外で、
だるく無い方法があるのか?
0414nobodyさん2009/01/16(金) 17:30:29ID:???
>>413
アホはほっとけ
0415nobodyさん2009/01/16(金) 18:16:16ID:???
Model::$validateで値そのものを利用して'message'を動的に設定ってできますか?
'この番号は使用できません'って出力してdata[]にそのまま残すのも間抜けなので、
data[]を使用した'message'を設定してdata[]消したいんですけどよく分かりません

通常ルールでのチェックも行っているので、View側でエラーメッセージチェックしてから
特定のエラーメッセージのときだけdata[]からメッセージ作成して
input value= にセットされないように処理するって何か変な気がしたので
0416nobodyさん2009/01/16(金) 18:30:22ID:???
メソッド内でうまいことエラーメッセージを書き換えられればいいんだろうけど

説明下手なきがするのでやりたいこと
入力フォーム→結果の表示フォームとエラー
[ab]→[ab]数字で入力しやがれ
[25]→[25]25は使えねえぜ
0417nobodyさん2009/01/16(金) 21:29:52ID:???
emailコンポーネントって文字化けするよね
しかも普通にPHP標準のメール送信機能使うと化けないケースで化けたりするから困る
また組み込みライブラリの糞ソースを修正する作業が始まるのか・・・
0418nobodyさん2009/01/16(金) 21:37:31ID:???
emailコンポーネントを継承して
問題ないようにしているけど?

オブジェクト指向になっているおかげで
いくつかのメソッドをオーバーライドするだけですんだ。
0419nobodyさん2009/01/16(金) 21:40:49ID:???
文字化けしないよ別に
ファイルの文字コードとか問題ないの?
0420nobodyさん2009/01/16(金) 22:28:03ID:???
toに全角使うと化ける
本文も特定のパターンで化ける
0421nobodyさん2009/01/16(金) 22:36:11ID:???
toはエンコしなきゃ化けるだろそりゃ
0422nobodyさん2009/01/16(金) 22:38:28ID:???
だからそれをコンポーネント内部でなんでやってないの?って話だよ
0423nobodyさん2009/01/16(金) 22:39:12ID:???
toってset()じゃなくてプロパティに直接設定するようになってるけど
どうやってエンコはさめばいいの?
本体のコード見て解析してエンコードはさむくらいしか思いつかないんだけど。
0424nobodyさん2009/01/16(金) 22:42:13ID:???
最後に送信するときにでもやればいい。
0425nobodyさん2009/01/16(金) 22:47:48ID:???
>>422
世の中には日本語以外もあるわけでな
必要なら日本人が修正してコミットすべき部分だろうに
0426nobodyさん2009/01/16(金) 22:49:09ID:???
そんなに不満だらけなら他のFW使えばいいじゃん
メールのエンコードも完璧なFWをさ
0427nobodyさん2009/01/17(土) 10:19:42ID:???
1.2.1
0428nobodyさん2009/01/17(土) 11:36:23ID:???
お、今度はstableを謳ってる
# If you are using AuthComponent without SecurityComponent you should update to CakePHP 1.2.1.8004 asap (gwoo)
だってさ
0429nobodyさん2009/01/17(土) 11:38:12ID:???
1.2 CheatSheet キタ━━━━(゚∀゚)━━━━!!!!
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
0430nobodyさん2009/01/17(土) 13:58:26ID:???
>>428
なにがかわったんだ?
0431nobodyさん2009/01/17(土) 14:40:37ID:???
>>429
これはいいね。早速プリントした。
あと、毎回html->linkの何番目をfalseだっけ?ってマニュアル見なきゃならん俺のために
付属のヘルパー分もお願いしたい。
0432nobodyさん2009/01/18(日) 11:31:02ID:???
>>430
http://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
0433nobodyさん2009/01/19(月) 16:13:21ID:???
会員登録時とかで、パスワードが勝手にハッシュ化されるけど
確認画面いって入力画面に戻るとハッシュ化されたものがパスワードのとこに入る
そしてまた確認画面に行くと再度ハッシュ化される
登録されるのは2度ハッシュ化されたデータ
当然認証は通らない

これはどうすれば?
0434nobodyさん2009/01/19(月) 16:21:13ID:???
パスワード消す
0435nobodyさん2009/01/19(月) 16:23:37ID:???
詳しく
0436nobodyさん2009/01/19(月) 17:12:40ID:???
入力画面に戻るときに消していいんなら
formへるぱーで'value'=>false指定すればよろし
0437nobodyさん2009/01/19(月) 17:15:56ID:???
再入力させるのはなぁ
既にハッシュ化してるんだからそのまま入れてもセキュリティ上問題無いのに
ハッシュ化されていれば再ハッシュ化は行わないようになってくれてたら良かった

フォームのパスワードの初期値と送信されたデータが同じだったらハッシュ化はしない
とするだけで出来たはずなのにな
0438nobodyさん2009/01/19(月) 17:38:24ID:???
ちょっとコード読んでみたけど
ハッシュ化のタイミングでセッションは既に今送信されたデータに書き換えられてて
元あったものとの比較が出来なくなってる

これ以上手間が要るならめんどくさいなー
0439nobodyさん2009/01/19(月) 17:45:57ID:???
確認用の入力分を使えばいいんじゃねえの?
0440nobodyさん2009/01/19(月) 18:11:18ID:???
確認入力のバリデーションと競合して分け分かんなくなってきた
どういう仕様になってるんだろ

passwordフィールドはハッシュ化されるが
password_confirmはハッシュ化されない
おかげで確認画面にいってから戻るとパスワードが違うと言うエラーが出る問題も絡んでくる
0441nobodyさん2009/01/19(月) 18:17:05ID:???
やはり確認用の入力を使うと言う手段が本筋じゃないな
passwordもpassword_confirmも同様にハッシュ化して
フォームの初期値から変更がなければハッシュ化は行わない、
と言う設計にすべきだと思う

でもこれをやるには今のAuthコンポーネントの仕様からじゃだいぶ手間がかかる
■ このスレッドは過去ログ倉庫に格納されています