【PHP】フレームワーク CakePHP 2ホール目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/11/14(水) 02:50:28ID:???http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0301nobodyさん
2008/01/23(水) 16:07:07ID:z/2JwMmbはずかしながら comit とか考えたことないな。
データばぐらなくない?テキストファイル、CSVデータなら書き込んだりするとバグるときあるんで
ファイルロックはするけど。
0302nobodyさん
2008/01/23(水) 16:18:03ID:???0303nobodyさん
2008/01/23(水) 16:18:45ID:???0305nobodyさん
2008/01/23(水) 19:01:29ID:???使ったこと無いの勧めて悪いけど これでも使ってみれば
Transaction behavior | The Bakery, Everything CakePHP : Articles
http://bakery.cakephp.org/articles/view/transaction-behavior
0306nobodyさん
2008/01/25(金) 20:52:16ID:???この作業がはてしなくつまらん…
0307nobodyさん
2008/01/26(土) 01:02:57ID:???極端に表示に時間がかかるようになってない?
俺が何か悪い事しているのかなぁ?
ちょっとコアいじってるし。
0308nobodyさん
2008/01/26(土) 11:36:05ID:???0309nobodyさん
2008/01/26(土) 20:23:58ID:???1.2で標準搭載されたわりには(日本語)情報が少ないような気がするんだけど…
"1.2のAuthComponent" フォーラム - CakePHP Users in Japan
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=706&forum=14&post_id=1780
0310nobodyさん
2008/01/26(土) 21:15:38ID:???なんでだろ?特に使わない理由があったわけじゃないんだが、
認証=顧客管理機能の一部として、顧客管理機能を作っていたら
結果的に組み込んでしまったって感じ。
突き詰めると、データベースにあるキーにマッチするかどうかの判定だけだしね。
会員の登録、退会、パスワード再発行などの機能にくらべればたいした事じゃないし。
0311nobodyさん
2008/01/26(土) 21:24:09ID:???この辺もコンポーネントであったりするの?
0312nobodyさん
2008/01/26(土) 21:28:19ID:???0313nobodyさん
2008/01/26(土) 21:38:31ID:???0314nobodyさん
2008/01/26(土) 21:42:24ID:???0315nobodyさん
2008/01/26(土) 21:57:48ID:RSZTbZiz俺の場合全てにおいて時間かかる。
$hoge = '';
ってやっとけばエラーでないからこうしとけばいいんじゃない?
0316nobodyさん
2008/01/26(土) 22:02:53ID:???やっぱりそうなんか。
pre-beta以前はこんなに時間がかからなかったんだけどねぇ。
> $hoge = '';
> ってやっとけばエラーでないからこうしとけばいいんじゃない?
俺は基本的に変数はちゃんと宣言するんだけど、
問題は間違って$hogeを$hageとか書いちゃった場合。
ケアミスバグなんだが、そのために数十秒無駄になるorz
0317nobodyさん
2008/01/27(日) 00:37:27ID:???普通のソフトだと、ベータテスト段階まで来たらバグ取りが主で、
大きな仕様変更は無いんじゃないかと思ってるんですけど、
Cakeはどうなんでしょう?
0318nobodyさん
2008/01/27(日) 02:53:40ID:???0319nobodyさん
2008/01/27(日) 13:39:39ID:HXUAcytA自分はpre-beta 以前からも時間がかかった・・・。
やっぱりキャッシュ機能は必須なのかな。
>>317
目だったバグはないと思うよ。今使ってるけど。
しいて言えば html ヘルパーが フォームヘルパーになったりしていてバリデータエラーの
取得方法が 1.1 と変わっているのでそこが迷うくらい。
0320nobodyさん
2008/01/27(日) 14:20:46ID:???さっき落とした状態の1.2でやってみたんだけど、
変数宣言していなくても時間がかかることはなかった。
きっとどこかで何かをやっているのだろうがソースは会社なのでw
そういやバリデーション部分でひとつ不満が。
たとえば、1から5までの値を受け付けるバリデーションを作ったとして、
エラーメッセージを、「1から5まで数値を指定してください。」って
表示することはできないよね?
もちろん、1から5までという数値はパラメータで変更可能。メッセージも同じく。
0321nobodyさん
2008/01/28(月) 01:30:21ID:???Router::connect('/', array('controller' => 'pages', 'action' => 'display'));
て設定してる時にクッキー消して(use_trans_sid onで)
http://myapp/?CAKEPHP=e233bd9c1facda8084d8ba2f2226eb60 でアクセスすると
Error: CAKEPHPe233bd9c1facda8084d8ba2f2226eb60Controller could not be found.
そんなコントローラーねえよって怒られちゃう
Router::connectの書き方誰か教えてくらさい
0322nobodyさん
2008/01/28(月) 12:43:25ID:???クッキーを使っている場合と同様のデータの持ち方に
変換すればいいと思ったがやり方しらねw
0323321
2008/01/28(月) 22:42:45ID:???0324nobodyさん
2008/01/28(月) 23:44:38ID:???0325316とか
2008/01/30(水) 12:21:18ID:???どうやら、デバッグ機能としてエラー発生時に
わかる範囲すべての変数を出力しているみたい。
だからモデルとかヘルパーとかいろいろ使っているほど遅くなる。
/cake/lib/debugger.php の __outputの以下の行をコメントアウトすれば
時間かからないようになる。もちろんデバッガ機能は落ちるけど。
foreach ((array)$kontext as $var => $value) {
$context[] = "\${$var}\t=\t" . $_this->exportVar($value, 1);
}
0326nobodyさん
2008/01/31(木) 03:14:54ID:???beta使ってるんだけど、HTMLは良くても、rssの場合だとFFでエラーが出てしまう…
あるhelperの最後の?>のあとに改行が入っていたせいで、それが出力されていたみたい。
0329nobodyさん
2008/01/31(木) 17:50:39ID:???0331321
2008/02/01(金) 03:13:35ID:???最新のbranchならfixされてるよ って開発者のレスがついて
最新のbranchにしたけど解決しなかった
んでそのまま放置されてる 今のところ以上
0332nobodyさん
2008/02/01(金) 17:28:50ID:???基本的にclickで動作するように作られているからmouseoverで
動作させるためにはコアに手を入れなきゃいけなくなると思うんだけど。
0334nobodyさん
2008/02/01(金) 21:05:31ID:???わざと機能を制限しているので逆に使いやすいかもしれない。
自分でライブラリ作っててわかるけどあれもこれも設定できるようにすると
逆に使いづらくなるからね。
0336nobodyさん
2008/02/02(土) 00:57:26ID:???簡単に一般的な大多数の開発をサポートする事を目標としてるんだろうし。
どうしてもって言うならコンポーネントとか作ればいいんじゃね
標準で対応するには一般的じゃないって事だと思うが
0337332
2008/02/02(土) 19:02:48ID:???アクションがあるというのはけっこう使うと思うけどなあ…
しょうがないから自分で作ってやってるけど。
0338nobodyさん
2008/02/07(木) 12:02:24ID:???良くある説明ページが
class MyTestCase extends CakeTestCase {
var $TestObject = null;
function setUp() {
$this->TestObject = new 〜〜;
}
function tearDown() {
unset($this->TestObject);
}
}
ってなっているんだけど、setUpが実行されるタイミングが
いまいちつかめない。なんか想定外に実行されるし。
また、fixturesを使ったとき、テーブルが作られるタイミングが
どうも???でテーブルが無いといわれたり。
んで、ざっくり調べたところ、
startCase/endCaseとstartTest/endTestというのが見つかった。
これだと、以下のコードで次のように想定どおりに表示される。
startCase -> startTest -> endTest -> startTest -> endTest -> endCase
0339nobodyさん
2008/02/07(木) 12:03:02ID:???var $TestObject = null;
function startCase() {
pr('startCase');
}
function startTest() {
pr('startTest');
}
function endTest() {
pr('endTest');
}
function endCase() {
pr('endCase');
}
function test1() {
$this->assertTrue(true);
$this->assertTrue(true);
}
function test2() {
$this->assertTrue(true);
$this->assertTrue(true);
}
}
0340nobodyさん
2008/02/07(木) 12:03:45ID:Ja8AUMIGstartCase/endCaseで足りると思うんだが、setUp、tearDownは何の為に使えばいいのだろう?
で、まだ良く調べていないのが、fixturesで追加したテーブルがどうなるか。
動きを見てみると、startTestが実行する直前に毎回リセットされてるようだ。。
だからstartTest前にCREATEしてendTest後にTRUNCATEしているようだが・・・
こういうレベルでちゃんと説明しているところがほしい。
0341nobodyさん
2008/02/07(木) 12:42:55ID:???0342nobodyさん
2008/02/08(金) 15:28:07ID:???0343nobodyさん
2008/02/08(金) 17:25:37ID:???こっちがあるよ。
0344nobodyさん
2008/02/08(金) 19:11:40ID:???商品をカートに入れるとカートの画面に飛ぶ。
そこからログインをクリックしてログインページへ。
ユーザー・パス入れてログイン。
そしたらカートの画面に戻っている。
そして状態でもカートに商品は残ったまま。
ログアウトボタンをクリック。
そしたらカートから商品は削除されている。
(当然この一連の処理にクッキー・セッションが使われている。)
という一連のテストを自動化できちゃったよ。
(一度書いたら何か修正しえてもそれを実行するだけ)
0345nobodyさん
2008/02/09(土) 00:52:29ID:???0346nobodyさん
2008/02/09(土) 14:25:58ID:???dreamweaver cs3 使ってますよ。
やっぱりこれが最強じゃないですかね。
プログラム、デザインの両方に特化していますので。
0347nobodyさん
2008/02/09(土) 17:09:18ID:???0348nobodyさん
2008/02/09(土) 23:16:53ID:???0349nobodyさん
2008/02/10(日) 01:04:56ID:???って事は人気のあるスポーツはどんどんレベルが落ちてるんだな
0350nobodyさん
2008/02/10(日) 01:17:48ID:???レベルが下がってるよ。スポーツは
0351nobodyさん
2008/02/10(日) 01:37:18ID:???部外者からみてもピラミッドが見えるようにすればいい。
0352nobodyさん
2008/02/10(日) 14:24:03ID:???こんなリレーションなんですが、A->findAll()すると、Bしか付いてきません。
B->findAll()とすると、Cが付いてきます。
A->findAll()でB,C一緒に持って来たいのですが、どのようにしたらよいのか分かりません。
どなたかヒントをください。
0353nobodyさん
2008/02/10(日) 14:24:47ID:???0354nobodyさん
2008/02/10(日) 14:31:15ID:???A->findAll("","","","","",'3')
これでいけました。
0355nobodyさん
2008/02/10(日) 14:37:22ID:???なるほど。なんか納得。
web上ではプロは目立たず素人ばっか目立つから変な感じに見えるのか。
0356nobodyさん
2008/02/10(日) 15:35:17ID:???ごくわずかでそういうものに手を出す人は
詳しい人が多い。
実際は、使う人の問題なのに、
言語の問題といいはるRuby凶なんてのがいたな。
0357nobodyさん
2008/02/11(月) 00:25:02ID:???自分が何か情報を出すとライバルに盗まれるかも、とか足を引っ張られるかも、とか思ってるんでしょ。
もうちょっと余裕のある人はちゃんと次を育てていける。
いきなり素人が…とか言い出したりしないだろ普通。
0358nobodyさん
2008/02/11(月) 00:28:41ID:???新人には仕事教える立場だし。
0359nobodyさん
2008/02/11(月) 02:35:25ID:???ネットに限って言えば、プロな人がいろいろ露出するのって、ほぼ趣味なんじゃないか。
PHP界隈が、趣味でやるほどの魅力がない、仕事用の言語って感じだからじゃないの?
0360nobodyさん
2008/02/11(月) 02:54:33ID:???言語そのものが目的だからなw
0361nobodyさん
2008/02/11(月) 03:20:56ID:???0362nobodyさん
2008/02/12(火) 08:45:57ID:???一括で更新とかするSql文とか作ってるわけじゃないの?
0364nobodyさん
2008/02/13(水) 00:39:35ID:jaUT9mg5単体で使える共用のビューを作りたい時はどうすればいいの?
app/views/common/common.ctpみたいな感じ
0366nobodyさん
2008/02/13(水) 02:07:27ID:???0367nobodyさん
2008/02/13(水) 20:01:16ID:jaUT9mg5どうもありがとうございます
0368nobodyさん
2008/02/14(木) 11:30:58ID:???→最後にOKで処理実行のようなページを作るにはどうしたらいいの?
ページごとにエラーチェックしたり、前の入力項目の値を元に
次のページを決めたり、想定外のページ変移に対応したりもしたい。
0370nobodyさん
2008/02/14(木) 16:32:15ID:???まあ今はaction一つでやってるんだけど。
なんか一つにごちゃごちゃあって見にくいなぁと
それにページ間での値の参照・共有したいし
なんか良いやり方無いのかなぁ?
0371nobodyさん
2008/02/14(木) 16:35:18ID:???0373369
2008/02/14(木) 16:55:00ID:???actionも1個でやる。controller側ではページ分割されていることを意識しない。
1ページ目のpostは、2ページ目以降の項目が未入力と見做してエラー扱い。
表示の調整をviewでやる。
まあ思い付いただけなんで上手く行くかは分かりません。
0374nobodyさん
2008/02/14(木) 18:23:10ID:???一ページ目入力、ニページ目入力、三ページ目入力・・・してる途中で
一ページに戻る、一ページ目訂正、
二ページ目はさっき入れたのが表示されているからそのまま次へ。
三ページ目入力
みたいな。
0375nobodyさん
2008/02/14(木) 18:27:55ID:???> セッションでデータ保持して、ページ移動はredirectとかすればいいんじゃね
汎用的過ぎて参考にならないよw
ほぼすべてのウェブアプリはセッションかデータベースにデータ保持して
ページ移動はredirectとか使っている。
0376nobodyさん
2008/02/14(木) 18:33:04ID:???0377369
2008/02/14(木) 19:39:04ID:???マイナス1ページはプラス1ページと同じだから問題ないと思うけど、
ページを飛ばすのは処理増やさんといかんなあ。
入力値でページ分岐もややこしそうだ。
あと、未入力エラーを出すか出さないかの判断も必要か。
0378nobodyさん
2008/02/14(木) 21:58:46ID:???いかに管理しやすくするかということかな。
PHP5だと普通にインスタンスをセッション保存できるから、
複数ページで1インスタンスを共有というのもありでしょう。
0379nobodyさん
2008/02/15(金) 04:03:48ID:???もっと普通のウェブアプリ作れ。
0381nobodyさん
2008/02/15(金) 06:47:51ID:???セッションでデータ保持するのはバカだろ
0383nobodyさん
2008/02/15(金) 09:08:38ID:???0384nobodyさん
2008/02/15(金) 10:10:41ID:???いや、Cakeならそのケースでどうするかということで
フレームワークによってセッションの扱いは少しずつ異なるし。
0386nobodyさん
2008/02/15(金) 15:43:58ID:???俺ほぼ全部を受け渡してるけどな。
だってIDのみだったら他の情報がを表示するときとかっていちいちDBから拾ってくるの?
まぁ、変更するときはDBを更新する必要があるんで接続はするだろうけど。
0387nobodyさん
2008/02/15(金) 15:56:24ID:???そのくらいいいじゃん。
0388nobodyさん
2008/02/15(金) 16:55:19ID:???基本的に大量データを引っ張てくるキーだけ保存するもの
0389nobodyさん
2008/02/15(金) 16:59:50ID:???いちいちDBから拾うのが基本
セッションは会員IDなど必要最小限のデータだけ入れるべき
データ大量に保存して持ちまわすものじゃない
0390nobodyさん
2008/02/15(金) 17:01:59ID:???セッションについて何もわかってないみたいだ
0391nobodyさん
2008/02/15(金) 17:04:23ID:???0392nobodyさん
2008/02/15(金) 17:05:37ID:???0393nobodyさん
2008/02/15(金) 17:12:24ID:???セキュリティ的にもやばいし
ページの前に戻ると不具合がおこりやすい
常に大量データ持ちまわすことはメモリ、CPUに負荷がかかる
0394nobodyさん
2008/02/15(金) 17:14:11ID:???0395nobodyさん
2008/02/15(金) 17:18:54ID:???ページまたぎ処理はパラメータで引き継げよ
0396nobodyさん
2008/02/15(金) 17:27:06ID:???>セキュリティ的にもやばいし
どういうとこが?セッション固定化とかは別の話だし
>ページの前に戻ると不具合がおこりやすい
具体的にどんな不具合?
セッションでフロー管理してるからhiddenよりも厳密にできたりするんだけど
>常に大量データ持ちまわすことはメモリ、CPUに負荷がかかる
大量っていっても、多くても数kとかだし。
何かしらのキーで毎回ストレージから取得するのも処理コストあるよね
0397nobodyさん
2008/02/15(金) 17:32:39ID:???俺はセッションに入れる派。
0398nobodyさん
2008/02/15(金) 17:47:48ID:???yahooなどの超有名サイトほど、ログイン処理など
きわめて便利でないとこ以外はセッションを使ってない
0399nobodyさん
2008/02/15(金) 17:48:37ID:???0400nobodyさん
2008/02/15(金) 18:01:38ID:???データの引継ぎが途中で止まる
hidddenにデータがはいってないので
最初からページ移動のやりなおし
0401nobodyさん
2008/02/15(金) 18:13:03ID:???hiddenは値をいくらでも改竄できるからどうも・・・。
それすると挙動がおかしくなるサイトもあるし。
まぁ、それはそこの実装者が悪いだけなんだけど。
今のところセッションの方が生産性高いから、セッションで実装しちゃうな〜
■ このスレッドは過去ログ倉庫に格納されています