- 1 名前:nobodyさん [2008/03/14(金) 15:16:00 ID:HF9x5ODX]
- www.cakephp.org/
10分で作るCakePHPアプリ for Windows p4life.jp/cake/ マニュアル日本語化 www.cakephp.jp/doc/ 日本語フォーラム cakephp.jp/modules/newbb/ あとこのへんとか(初心者向けTIPS) www.avatarfinancial.com/pages/cake/ CakePHP入門リンク集 ttp://pub.studio15.jp/2007/11/13/cakephp-links/ 【PHP】フレームワーク CakePHP 2ホール目 pc11.2ch.net/test/read.cgi/php/1194976228/ 【PHP】フレームワーク CakePHP pc11.2ch.net/test/read.cgi/php/1163850802/
- 502 名前:nobodyさん mailto:sage [2008/03/30(日) 17:27:12 ID:???]
- render呼んだ後
すぐexit(); してる?
- 503 名前:nobodyさん [2008/03/30(日) 20:27:27 ID:3z+xm+ln]
- >>473
遅レスだが、ソースの頭にBOMを付けたら表示されるようになた。 が、viewのファイルは8Nで保存しておかないと、たまに悪さをするようだ。
- 504 名前:nobodyさん mailto:sage [2008/03/30(日) 22:06:44 ID:???]
- >>502
もっと常識的な質問たのむ
- 505 名前:nobodyさん mailto:sage [2008/03/31(月) 10:30:36 ID:???]
- >>502
してないよ
- 506 名前:nobodyさん mailto:sage [2008/03/31(月) 10:59:21 ID:???]
- >>505
コンポーネントでrenderを呼んだときは exitしないとデフォルトのrenderが最後に読み込まれるよ
- 507 名前:nobodyさん mailto:sage [2008/03/31(月) 11:00:31 ID:???]
- cakePHPのテスト環境だけど
SeleniumとSimpleTestの組み合わせが最強?
- 508 名前:nobodyさん [2008/04/01(火) 01:26:52 ID:j0Vrw1hD]
- >>507
そっちのテストなら、セレニウムだろうと手作業だろうとなんだって良くね? ユニットテストをするのなら1.2から正式対応したSimpleTestって言うだろうけど。 ていうか、テスト駆動開発って面倒ですよね、時間がかかるけど出来上がり安定するのは確かだけど。
- 509 名前:nobodyさん mailto:sage [2008/04/01(火) 01:34:29 ID:???]
- 正確にはテスト駆動じゃないけど、
ある程度の規模になったら、ユニットテストをやらないなんて 考えられないよ。 修正があるたびに同じテストなんてやってられない。 それこそ時間がかかる。
- 510 名前:nobodyさん mailto:sage [2008/04/01(火) 02:09:46 ID:???]
- Selenium IDE これいいね。これだけでも同じテストする必要がないし
なんといってもテストが楽
- 511 名前:nobodyさん mailto:sage [2008/04/01(火) 12:33:08 ID:???]
- Yahooが占いコンテンツ制作にCakePHPを採用
- 512 名前:nobodyさん mailto:sage [2008/04/01(火) 20:20:10 ID:???]
- なにこの寂びれぶり
- 513 名前:nobodyさん [2008/04/02(水) 00:32:30 ID:Ldo05SB7]
- んじゃ、おれがこのスレを潤わせてやるぜ
ビヘイビアって使ってる?
- 514 名前:nobodyさん mailto:sage [2008/04/02(水) 00:38:10 ID:???]
- >>512
荒らしが去ったので落ち着いただけ。 CakePHPを使って、ようやくサイトを公開できた。 思ったより使いやすいね、CakePHP。
- 515 名前:nobodyさん mailto:sage [2008/04/02(水) 03:09:53 ID:???]
- コンポーネント、ビヘイビア、ヘルパーの中では
ビヘイビアを一番使うな。 よくよく考えると、ソフトウェアの中心はモデル。 その中心の共通処理なんだからよく使うのは当たり前か。
- 516 名前:nobodyさん mailto:sage [2008/04/02(水) 11:07:25 ID:???]
- >>515
ソフトウェアの中心はコントローラー なぜならコントローラーはモデルとビューにも指令を出すが モデルは、たいていコントローラを介してのやりとりになるから そういう考えで行けば、よく使うのはコンポーネントじゃないとおかしい
- 517 名前:nobodyさん [2008/04/02(水) 11:18:11 ID:Ldo05SB7]
- >>516
アフォがあらわれた
- 518 名前:nobodyさん [2008/04/02(水) 11:57:50 ID:KzinrGTW]
- findCount()で count(distinct hoge) を指定したいのですが
それは、findAll() でやるべきなのでしょうか?
- 519 名前:nobodyさん mailto:sage [2008/04/02(水) 12:05:53 ID:???]
- うん。アフォだ。ワロタw
コントローラなんて所詮インターフェースに過ぎんよ。 実際の処理じゃなくて、ブラウザから引数を受け取って それを少々加工してモデルに渡す。 またモデルから受け取ったデータを少々加工してビューに渡す。 流れとしてはこんな感じだね。 「ブラウザ」→「コントローラ(加工)」→「モデル(実際の処理)」→「コントローラ(加工)」→「ビュー(HTML出力)」 っていうか、このように作らないとテストがしづらいったらありゃしない。 SeleniumやCakeWebTestCaseがあるとはいえ、 コントローラを操作してのテストでは範囲が大きすぎる。 もっと小さな範囲でテストできるようにしないといけない。 一番重要な処理を最小限の大きさ(なるべく他に依存しない)で テストすること考えれば、自然とこうなるはず。
- 520 名前:nobodyさん mailto:sage [2008/04/02(水) 15:46:57 ID:???]
- ガソリン安いな〜
これほど自民党の一党独裁の問題点が分かりやすい現象は無いなw
- 521 名前:nobodyさん mailto:sage [2008/04/02(水) 16:07:32 ID:???]
- >>519
そうなんだ。だから本にもモデルのテストの方法しか書いてなかったんだ。 モデルよりコントローラーをテストしたいんだけど・・・ってずっと思ってた。 ということは、僕のプログラムの組み方がよくないんでしょうか。
- 522 名前:516 [2008/04/02(水) 16:33:04 ID:Ldo05SB7]
- >>515,>>121
さきほどはアフォと一言で片付けてしまって申し訳ない、2ch流の愛情表現だと思ってくれ で、>>519のいうとおりアプリケーションの中心となるビジネスロジックについてはコントローラなどでは なくモデル内で実装するべき。一番大切なテストはビジネスロジックであるわけだし、モデルに集約して (かつコントローラとのインタフェースも疎結合にして)コアロジックを実装することでコアロジックを別システムに 再利用しやすくなるというメリットも受けられる。 なので、コントローラはある意味、テストをしなくても問題ないくらい「薄い」実装にするべきだし、コントローラ 内で繰り返しよく使う処理についてはコンポーネント化してあげたほうが、ユニットテストで品質を保証できるので 良いかと。 こんな感じで考えていますが、どうでしょう?
- 523 名前:nobodyさん mailto:sage [2008/04/02(水) 16:44:10 ID:???]
- >>519
Seleniumこれだけあれば、全く十分なんだが これ以外でテストしようとすればコストかかるだけやろ どんくさい作業してんな、赤字やろ?
- 524 名前:nobodyさん mailto:sage [2008/04/02(水) 16:50:49 ID:???]
- >>522
だから何ってかんじだが、それがどうしたんだよ リファレンスに書いてあるようなこと、なんで必死に訴えてるのwww
- 525 名前:nobodyさん mailto:sage [2008/04/02(水) 16:52:59 ID:???]
- 自演厨きたー。うぜえええ
- 526 名前:nobodyさん mailto:sage [2008/04/02(水) 16:56:38 ID:???]
- Seleniumなんかでテストしたら時間(=コスト)がかかるよ。
ブラウザを起動する為、そもそも動作が遅いってのもあるが、 Seleniumだといくつものモジュールが組み合わさった状態で テストするしかないから、どこのバグがあるのか見つけにくい。 またデータの初期化などが出来ない。 途中で内部のデータを調べることも出来ない。 CakePHPにはSimpleTestでブラウザをエミュレートした状態の テストもできるので基本はそれを使ったほうが良い。 Seleniumを使うとしたら、SimpleTestではできない JavaScriptが絡んだ処理のテストぐらいだな。
- 527 名前:nobodyさん mailto:sage [2008/04/02(水) 16:58:43 ID:???]
- リファレンスに書いてあるようなことなのだから、
間違いではないということだなw
- 528 名前:nobodyさん mailto:sage [2008/04/02(水) 17:01:36 ID:???]
- >>522
アプリケーションの中心となるビジネスロジックて何? どんなロジック? 一番大切なテストてどんなテスト? >>モデルに集約して (かつコントローラとのインタフェースも疎結合にして)コアロジックを実装 プラグインと違うの? >>なので、コントローラはある意味、テストをしなくても問題ないくらい「薄い」実装にするべき モデルとビューに命令出すのに薄い実装なんて物理的に無理 モデルはカラッポでOK
- 529 名前:nobodyさん mailto:sage [2008/04/02(水) 17:04:44 ID:???]
- >>526
ブラウザ上でテストするだけなのにモジュールとか関係ないしwww JavaScriptテストやるなら加工しないと出来ないだろwww
- 530 名前:nobodyさん mailto:sage [2008/04/02(水) 17:05:56 ID:???]
- >>526
Selenium使ったことないやろ?正直にいえ
- 531 名前:nobodyさん mailto:sage [2008/04/02(水) 17:08:00 ID:???]
- SimpleTestの方が時間かかるよ
- 532 名前:nobodyさん mailto:sage [2008/04/02(水) 17:08:48 ID:???]
- 内部のデータを調べるようなテスト時間かかるに決まってるやろ
- 533 名前:nobodyさん mailto:sage [2008/04/02(水) 17:09:00 ID:???]
- また、例の嵐だな。
- 534 名前:nobodyさん mailto:sage [2008/04/02(水) 17:09:39 ID:???]
- とりあえず言っておくけど、CIは糞だから、
糞スレでやってねw
- 535 名前:nobodyさん mailto:sage [2008/04/02(水) 17:13:49 ID:???]
- >>532
たしかに!
- 536 名前:nobodyさん mailto:sage [2008/04/02(水) 17:16:18 ID:???]
- >>522
日本語でおk
- 537 名前:nobodyさん mailto:sage [2008/04/02(水) 17:18:56 ID:???]
- なんか、CI普及の為(?)にわざとアフォなことを言っている気がする。
いや、まて、わざと悪い例を出しているのか? まあ、訂正している俺は考えをまとめられていいけどな。 (そして訂正している文を見て学習する人もいるだろう) > モデルとビューに命令出すのに薄い実装なんて物理的に無理 > モデルはカラッポでOK コントローラが出す命令はすごく小さなものだよ。 モデルに対して、「データ取って来い!」「書き込め!」「削除しろ!」 そして、「複雑な一連の処理をしろ!」 前三つは、CakePHPの自動生成コードでも書いてあるから 簡単にわかると思うけど最後の「複雑な一連の処理をしろ!」を モデルに書くべきってことをわかってない人が多いんだよね。 複雑な一連の処理をコントローラに書いてしまう。悪い例だ。
- 538 名前:nobodyさん mailto:sage [2008/04/02(水) 17:27:44 ID:???]
- >>537
テストのことを考えていってんの?俺はテストはブラウザでしかしないからw
- 539 名前:nobodyさん mailto:sage [2008/04/02(水) 17:29:17 ID:???]
- テスト中心に設計するならモデルに詰め込めるだけ詰め込めばいいんじゃね
- 540 名前:nobodyさん mailto:sage [2008/04/02(水) 17:30:57 ID:???]
- >>537
複雑な一連の処理を具体的に述べよ はなしはそれからだ
- 541 名前:nobodyさん mailto:sage [2008/04/02(水) 17:32:26 ID:???]
- where が入るような条件文はモデルに書けばいいの?
- 542 名前:nobodyさん mailto:sage [2008/04/02(水) 17:33:42 ID:???]
- >>537
モデルにもっていっていいのは どこからどこまで?
- 543 名前:nobodyさん mailto:sage [2008/04/02(水) 17:45:27 ID:???]
- >>537
いくら給料もらってんだよ 俺はPHPプログラマで36万円
- 544 名前:nobodyさん mailto:sage [2008/04/02(水) 17:53:38 ID:???]
-
モデル上で別のモデルのデータ取得できなくね?
- 545 名前:nobodyさん mailto:sage [2008/04/02(水) 17:55:24 ID:???]
- >>542
どこまでをモデルでやるかは結局設計しだいだけど、 >>541 ユーザーがフォームからの条件入力。URL形式での条件入力 、つまりコントローラのアクション関数の引数に入る場合。 その引数をもとにモデルを呼び出すわけだけど、 このときのモデルの関数は汎用的なfind関数でもいいし、 もっと簡単に扱いたければ、モデルに専用の関数を作って呼び出す。 汎用的なfind関数を使う場合には、array('key' => '= ' . $value)なんて 条件データに加工しないといけないよね? これがコントローラの処理。 モデルに専用の関数を作る場合、もっと簡単に使える関数にするね。 もちろんその場合、モデル内部でfind関数を使うことになるだろうし、 そのための条件の加工もモデルに書く。 ユーザーの入力した条件が、POSTでくる場合は、 $this->dataから条件を作り出す所までもうちょっと コントローラでやる仕事が増えるだろう。 それでもコントローラの処理(モデルを呼び出すところまで)はこれだけ。 俺ならこのように作るよ。 あとモデルから戻ってきたデータを、ビューで使いやすいように 単純化するのもコントローラの仕事だね。
- 546 名前:nobodyさん mailto:sage [2008/04/02(水) 17:59:00 ID:???]
- >>544
> モデル上で別のモデルのデータ取得できなくね? モデル上で別のモデルのデータを使用したいと思ったとき、 その二つのモデル間には関連性がある。 つまりアソシエーションを定義している。 アソシエーションを定義しているのなら、 モデル内で、別のモデルを呼び出すことが出来る。 Model1の中から、$this->Model2->findAll(); 感じで呼び出せる。
- 547 名前:nobodyさん mailto:sage [2008/04/02(水) 18:01:31 ID:???]
- >>545
モデルから戻ってきたデータを、ビューで使いやすいように単純化 数字にコンマ付けたりとか?
- 548 名前:nobodyさん mailto:sage [2008/04/02(水) 18:02:43 ID:???]
- >>546
そのやり方はCakePHPで推奨されてる方法なの?
- 549 名前:nobodyさん mailto:sage [2008/04/02(水) 18:05:48 ID:???]
- >>546
わざわざアソシエーションするの? いつも結合されて重くなるじゃん
- 550 名前:nobodyさん mailto:sage [2008/04/02(水) 18:06:46 ID:???]
- >>547
それは見た目を変えるだけだからビューの仕事だろうね。 モデルから戻ってきたデータとは、汎用的なfind関数の場合、 $data => array( モデル名 => array( フィールド名1 => 値1, フィールド名2 => 値2, フィールド名3 => 値3, ) ) こんな値が返ってくる。もちろん、これをそのまま ビューに渡してもいいんだけど、これじゃあビューで使いにくい! って言う場合加工する。 そんな場合あるのかって? 余り無いだろう。 そう、だからコントローラの仕事は少ない。 モデルから取得した値をビューに渡す$this->set(・・・) は コントローラの仕事ね。
- 551 名前:nobodyさん mailto:sage [2008/04/02(水) 18:07:42 ID:???]
- >>549
必要なときにつけたりはずしたりする方法は、何度も既出
- 552 名前:nobodyさん mailto:sage [2008/04/02(水) 18:11:37 ID:???]
- >>548
だめなのか?
- 553 名前:nobodyさん mailto:sage [2008/04/02(水) 18:12:12 ID:???]
- >>546
なんでモデルでやるの?そのメリットは?
- 554 名前:nobodyさん mailto:sage [2008/04/02(水) 18:21:49 ID:???]
- >>553
もちろん、直接関係が無いモデルは別々に アクセスするよ。 モデルというか処理の内容から考えて 一つであるべきと思う場合は一つのモデルでやる。 あと、トランザクションの為のメソッドが モデルにあることも興味深いよね。 一連関係ある処理は一つのモデル内で完結させるものと 考えると、なるほどと思わない?
- 555 名前:nobodyさん mailto:sage [2008/04/02(水) 18:23:17 ID:???]
- >>546
モデルは複雑にすべきじゃないよ。な中規模設計したとき アソシエーションで必ず問題起きそう
- 556 名前:nobodyさん mailto:sage [2008/04/02(水) 18:27:56 ID:???]
- >>555
その意見はわからないでもないが、 普通にRDBMSを正規化したとき そういう関連(リレーション)は出来るもんなんだが・・・ RDMSを正規化すると複雑になってしまう。それがいやだから それを解決する為に、O/Rがあるんだと思うぞ!
- 557 名前:nobodyさん mailto:sage [2008/04/02(水) 18:28:26 ID:???]
- ×RDBMSを正規化したとき
○RDBMSでテーブルを正規化したとき
- 558 名前:nobodyさん mailto:sage [2008/04/02(水) 18:32:44 ID:???]
- >>546
ページ数が増えたとき、コントローラを増やすことができるけど コントローラが増えた分モデルを増やすこと出来ないよ。 ひとつのモデルに書くコードが恐ろしく増えるね
- 559 名前:nobodyさん mailto:sage [2008/04/02(水) 18:34:17 ID:???]
- また例の馬鹿か?
- 560 名前:nobodyさん mailto:sage [2008/04/02(水) 18:35:56 ID:???]
- > コントローラが増えた分モデルを増やすこと出来ないよ。
言っている意味が、よくわからないんだが・・・ 例えコントローラが無くてもモデルは作れるし、 一つのコントローラで複数モデルを扱うことも出来るんだが?
- 561 名前:nobodyさん mailto:sage [2008/04/02(水) 18:43:36 ID:???]
- 全てはコントローラに処理を詰め込み過ぎたscaffoldが悪い。
あれがアフォに勘違いを植え込む。
- 562 名前:nobodyさん mailto:sage [2008/04/02(水) 18:49:12 ID:???]
- うーん、自動生成のコードとしては、これしかやりようがない所もあるのだろうけど、
コントローラに処理を詰め込みすぎというか、モデルに処理が何も無いのが いけないんじゃないかな? あれじゃ、単にテーブルに直接アクセスするネイティブな関数の 代わりのクラスにしか見えない。 一番、プログラマがいろいろ書くべきなのはモデルなのに。 逆に言えば、いろいろ書かないといけないものだからこそ 自動生成ではモデルに何もないんだろうね。 でもサンプル程度はほしいかも。
- 563 名前:nobodyさん [2008/04/02(水) 18:53:30 ID:KzinrGTW]
- debugを1以上にするとHTMLの一番最後に
<!-- 0.0012s --> みたいに、生成時間?のコメントがつくんですけど これを付けないようにするにはどうすれば良いんでしょうか? debugは1にしておきたいです。
- 564 名前:563 mailto:sage [2008/04/02(水) 18:58:51 ID:???]
- あ、webroot/index.php にありました。
- 565 名前:nobodyさん mailto:sage [2008/04/02(水) 19:00:37 ID:???]
- cakephpで作られたオープンソースみても
モデルで書かれてる処理はバリデータ関係の関数しかないんだけど code.google.com/p/openflp/
- 566 名前:nobodyさん mailto:sage [2008/04/02(水) 19:00:38 ID:???]
- >>564
Do not changeって書いてあるけどねw
- 567 名前:516,522 [2008/04/02(水) 19:01:23 ID:Ldo05SB7]
- ん?なんかいろいろゴチャゴチャしてきたけど、結局俺が主張してたことは正しかったのか・
「複雑な一連の処理」とかビジネスロジックとかって、たとえば俺の場合は ・@日足の株価を取得してRSIを計算する ・A与えられた条件引数に該当する銘柄の証券コード配列を取得(スクリーニング) ・B現在の株価を受け取り、あらかじめ計算しておいた目標価格の条件を満たすか判別 ⇒・更に条件を満たしていれば、買い/売り注文をWEBサービスに投げる処理も「証券会社モデル」(仮称)というDBと連携しないモデルを作成して、HTTP(S)で注文するメソッドを書いてる。 ・C現在の株価を取得する(楽天証券のRSSをDDE接続経由で呼び出すモジュールを別途使用) みたいなアプリが持つほとんどの主要処理を言ってて、これらをモデル(またはビヘイビア)に記述するべきと思うのです。 逆に言えばコントローラは、 ・Cの「現在の株価を取得する」メソッドからの返し値をそのままB「株価と目標を評価し、注文する」メソッドに引渡し仲介する ・ビューからリクエストがあった@などの計算処理をモデルメソッド@に引き渡す ・スクリーニング対象銘柄の証券コードリストを取得し、そのままAのスクリーニングメソッドに引き渡す。 くらいのことしかしていない。人間の世界でいうと「仲介人」かと。
- 568 名前:nobodyさん mailto:sage [2008/04/02(水) 19:06:54 ID:???]
- >>565
お前の目は節穴か・・・ ってかこのソースあまりいいとは思えないな
- 569 名前:nobodyさん mailto:sage [2008/04/02(水) 19:08:08 ID:???]
- OpenFLP
Rails 製のオープンソース版 Fastladder モデル 382steps コントローラー 910steps コントローラーに処理書きまくってるんですが。。。
- 570 名前:nobodyさん mailto:sage [2008/04/02(水) 19:09:00 ID:???]
- じゃあ本家railsのソースコードみせてやる
- 571 名前:nobodyさん mailto:sage [2008/04/02(水) 19:11:13 ID:???]
- コントローラに処理を詰め込みが正論か非か
オープンソース見れば、すぐわかることだからな
- 572 名前:nobodyさん mailto:sage [2008/04/02(水) 19:15:29 ID:???]
- オープンソースといってもその質はピンキリだから
> じゃあ本家railsのソースコードみせてやる おいっ! railsはフレームワークだ。 もともとビジネスロジックは含まれてない!
- 573 名前:nobodyさん mailto:sage [2008/04/02(水) 19:18:52 ID:???]
- >>567
全部コントローラで出来るし それをCakePHPでやる意味がわからんw
- 574 名前:516,522 [2008/04/02(水) 19:46:05 ID:Ldo05SB7]
- >>573
あー、「全部コントローラで出来るし」って言ってる時点でプロフェッショなるじゃないことが確定www 議論しても理解できないんだろうな、「できる/できない」ということと「(プロとして)やるべき/べからず」 といった本質的な点をwww コントローラでも全部やろうと思えばできることくらいわかっとるわいwww
- 575 名前:nobodyさん mailto:sage [2008/04/02(水) 19:58:32 ID:???]
- >>574
CakePHPでやることじゃないことは確かwww
- 576 名前:nobodyさん mailto:sage [2008/04/02(水) 21:14:45 ID:???]
- ビジネスロジックはモデルに集約すべき
議論としては面白い 俺もその辺気になってた まあ俺はbakeしたコードの拡張から入ったクチだから全部controllerに書いちゃうけどなwww
- 577 名前:nobodyさん mailto:sage [2008/04/02(水) 21:37:43 ID:???]
- >>576
俺もコントローラに書いてしまったけど、 作り続けていくうちに、なんか無理が出てくるんだよ。 なんでこんなに作りづらいんだ?って思っていたときに このスレにあった、ケーキの絵。あれで悟りを開けた気がする。 あぁモデル中心でやればいいんだって。
- 578 名前:nobodyさん mailto:sage [2008/04/02(水) 21:58:22 ID:???]
- >>577
その絵ってどれ?
- 579 名前:nobodyさん mailto:sage [2008/04/02(水) 21:58:46 ID:???]
- >>562
モデルに書けって言うけど、何を書くの? 関数で書けばいいの?モデル内のメソッドとして? >>565 の言うとおり、実例も無いし具体的なメリットが分からない。 今のところテストが楽って事はなんとなく分かった。
- 580 名前:nobodyさん mailto:sage [2008/04/02(水) 22:16:06 ID:???]
- >>578
これの3ページ目 cakephp.org/files/OCPHP.pdf
- 581 名前:nobodyさん mailto:sage [2008/04/02(水) 22:19:41 ID:???]
- > 関数で書けばいいの?モデル内のメソッドとして?
モデル = ビジネスロジック用のクラス なんだから、言うまでも無くメソッドだろ
- 582 名前:nobodyさん mailto:sage [2008/04/02(水) 22:22:03 ID:???]
- >>580
ありがとう,でもコントローラーよりモデルに重点おけよという一言で済む話かw
- 583 名前:nobodyさん mailto:sage [2008/04/02(水) 22:26:19 ID:???]
- >>581
そうすると、どう幸せになれるわけ?
- 584 名前:nobodyさん mailto:sage [2008/04/02(水) 22:27:49 ID:???]
- >>583
どう幸せになるかではなく、 どう幸せになりたいか。 貴方はプログラミングする上で、どうなったら幸せだと感じる?
- 585 名前:nobodyさん mailto:sage [2008/04/02(水) 22:57:59 ID:???]
- railsはコントローラーに重点を置くようになってるのではなぜ?
- 586 名前:nobodyさん mailto:sage [2008/04/02(水) 23:14:04 ID:???]
- >>574
自分の安価間違ってね?516と522で筋が通ってない
- 587 名前:nobodyさん mailto:sage [2008/04/02(水) 23:53:19 ID:???]
- >>585
railsでもモデルが一番重要なものですよ。
- 588 名前:nobodyさん mailto:sage [2008/04/03(木) 00:17:09 ID:???]
- モデルが一番重要なんてCakePHPだけの話
松本に話したら鼻で笑われたよ
- 589 名前:nobodyさん mailto:sage [2008/04/03(木) 00:38:13 ID:???]
- 松本といっても鼻の長いゾウをキャラクターにしている会社の松本だけどなw
- 590 名前:nobodyさん mailto:sage [2008/04/03(木) 00:48:42 ID:???]
- でもキリンさんも好きなんだろ?
- 591 名前:nobodyさん [2008/04/03(木) 10:10:52 ID:Z1Ohe4yI]
- ビヘイバ話はおわったのか?
- 592 名前:nobodyさん mailto:sage [2008/04/03(木) 11:26:08 ID:???]
- Model は特定の環境に依存しない処理を行う部分である。
- 593 名前:nobodyさん mailto:sage [2008/04/03(木) 12:10:16 ID:???]
- たとえばの話なんですが、
1.フォームから画像ファイルをアップロード 2.アップロード結果・画像ファイルの不正検知 3.2が成功時、元画像名をmd5したものをuploadsフォルダに保存 4.3のファイル名をimage_fileカラムに格納 という一連の処理があったばあい、 今現在はコントロールとコンポーネントに書いてますが、 モデルとビヘイビアに書くとしたら、 2->バリデータに記述 3->ビヘイビア 4->モデル という感じなんでしょうか?
- 594 名前:nobodyさん mailto:sage [2008/04/03(木) 12:26:23 ID:???]
- ビヘイビアて1.2からだろ、
最初から無いってことは必要性が薄いてことだよな
- 595 名前:nobodyさん mailto:sage [2008/04/03(木) 12:32:04 ID:???]
- ソースが読みやすければコントローラーで全部書いてもいいし
モデルに書いて読みにくくなるなら、書かない方がいい 結局はソースを読みやすくするために分けてるだけの話
- 596 名前:nobodyさん mailto:sage [2008/04/03(木) 12:32:23 ID:???]
- 画像アップロードできるビヘイビアあるよ。
正確には画像を保存できるビヘイビアだけどね bakery.cakephp.org/articles/view/actas-image-column-behavior
- 597 名前:nobodyさん mailto:sage [2008/04/03(木) 12:50:28 ID:???]
- 結局はソースを見やすくする為にある。
一番見やすいソースとは、なるべく何も書かないこと。 画像をアップロードして保存というのは、本質的には テーブルに画像フィールドを作ってそこに格納することと変わらない。 だからフィールド追加作業以外は、一切処理を変更しないで 作れるというのが一番理想的。 ビヘイビアを使えば、>>596のようにActsAsにわずかなフィールド情報を 設定して終わりだけど、その他の方法でここまでスマートに作れるかな?
- 598 名前:593 mailto:sage [2008/04/03(木) 13:32:44 ID:???]
- >>596-597
ありがとうございます。 こりゃ1.2にチャレンジしなきゃだな
- 599 名前:nobodyさん [2008/04/03(木) 13:49:15 ID:Z1Ohe4yI]
- >ビヘイビアて1.2からだろ、
>最初から無いってことは必要性が薄いてことだよな 正確には1.1の頃からビヘイビアのディレクトリは用意されてたんだよな。 おそらく必要性はあったのだけど、1.1.xのステイブル版までに実装できなかっただけなのでは?
- 600 名前:nobodyさん mailto:sage [2008/04/03(木) 14:22:02 ID:???]
- railsにはビヘイビア相当になるものが無いんだが、どうして
- 601 名前:nobodyさん mailto:sage [2008/04/03(木) 15:14:18 ID:???]
- ビヘイビアてベネズエラにいる俺の愛人と同じ名前だ
- 602 名前:nobodyさん mailto:sage [2008/04/03(木) 15:38:42 ID:???]
- >>600
Rubyではmixinという言語機能でビヘイビア相当のことが出来るから。
|

|