のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,898人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】フレームワーク CakePHP 3ホール目【本命】

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : nobodyさん - 2008/04/02(水) 18:07:42 ID:??? (+31,+29,-5)
    >>549
    必要なときにつけたりはずしたりする方法は、何度も既出
    552 : nobodyさん - 2008/04/02(水) 18:11:37 ID:??? (+8,+20,-2)
    >>548

    だめなのか?
    553 : nobodyさん - 2008/04/02(水) 18:12:12 ID:??? (+26,+26,-12)
    >>546
    なんでモデルでやるの?そのメリットは?
    554 : nobodyさん - 2008/04/02(水) 18:21:49 ID:??? (+36,+29,-79)
    >>553
    もちろん、直接関係が無いモデルは別々に
    アクセスするよ。

    モデルというか処理の内容から考えて
    一つであるべきと思う場合は一つのモデルでやる。

    あと、トランザクションの為のメソッドが
    モデルにあることも興味深いよね。

    一連関係ある処理は一つのモデル内で完結させるものと
    考えると、なるほどと思わない?
    555 : nobodyさん - 2008/04/02(水) 18:23:17 ID:??? (+31,+29,-47)
    >>546
    モデルは複雑にすべきじゃないよ。な中規模設計したとき
    アソシエーションで必ず問題起きそう

    556 : nobodyさん - 2008/04/02(水) 18:27:56 ID:??? (+35,+28,-56)
    >>555
    その意見はわからないでもないが、

    普通にRDBMSを正規化したとき
    そういう関連(リレーション)は出来るもんなんだが・・・

    RDMSを正規化すると複雑になってしまう。それがいやだから
    それを解決する為に、O/Rがあるんだと思うぞ!
    558 : nobodyさん - 2008/04/02(水) 18:32:44 ID:??? (+26,+29,-61)
    >>546
    ページ数が増えたとき、コントローラを増やすことができるけど
    コントローラが増えた分モデルを増やすこと出来ないよ。
    ひとつのモデルに書くコードが恐ろしく増えるね
    559 : nobodyさん - 2008/04/02(水) 18:34:17 ID:??? (+19,+28,-3)
    また例の馬鹿か?
    560 : nobodyさん - 2008/04/02(水) 18:35:56 ID:??? (+32,+29,-93)
    > コントローラが増えた分モデルを増やすこと出来ないよ。

    言っている意味が、よくわからないんだが・・・

    例えコントローラが無くてもモデルは作れるし、
    一つのコントローラで複数モデルを扱うことも出来るんだが?
    561 : nobodyさん - 2008/04/02(水) 18:43:36 ID:??? (+12,+14,-34)
    全てはコントローラに処理を詰め込み過ぎたscaffoldが悪い。
    あれがアフォに勘違いを植え込む。
    562 : nobodyさん - 2008/04/02(水) 18:49:12 ID:??? (+36,+30,-130)
    うーん、自動生成のコードとしては、これしかやりようがない所もあるのだろうけど、
    コントローラに処理を詰め込みすぎというか、モデルに処理が何も無いのが
    いけないんじゃないかな?

    あれじゃ、単にテーブルに直接アクセスするネイティブな関数の
    代わりのクラスにしか見えない。

    一番、プログラマがいろいろ書くべきなのはモデルなのに。
    逆に言えば、いろいろ書かないといけないものだからこそ
    自動生成ではモデルに何もないんだろうね。
    でもサンプル程度はほしいかも。
    565 : nobodyさん - 2008/04/02(水) 19:00:37 ID:??? (+4,-2,-20)
    cakephpで作られたオープンソースみても
    モデルで書かれてる処理はバリデータ関係の関数しかないんだけど

    http://code.google.com/p/openflp/
    567 : 516,522 - 2008/04/02(水) 19:01:23 ID:Ldo05SB7 (+37,+29,+0)
    ん?なんかいろいろゴチャゴチャしてきたけど、結局俺が主張してたことは正しかったのか・

    「複雑な一連の処理」とかビジネスロジックとかって、たとえば俺の場合は
     ・①日足の株価を取得してRSIを計算する
     ・②与えられた条件引数に該当する銘柄の証券コード配列を取得(スクリーニング)
     ・③現在の株価を受け取り、あらかじめ計算しておいた目標価格の条件を満たすか判別
       ⇒・更に条件を満たしていれば、買い/売り注文をWEBサービスに投げる処理も「証券会社モデル」(仮称)というDBと連携しないモデルを作成して、HTTP(S)で注文するメソッドを書いてる。
     ・④現在の株価を取得する(楽天証券のRSSをDDE接続経由で呼び出すモジュールを別途使用)
    みたいなアプリが持つほとんどの主要処理を言ってて、これらをモデル(またはビヘイビア)に記述するべきと思うのです。

    逆に言えばコントローラは、
     ・④の「現在の株価を取得する」メソッドからの返し値をそのまま③「株価と目標を評価し、注文する」メソッドに引渡し仲介する
     ・ビューからリクエストがあった①などの計算処理をモデルメソッド①に引き渡す
     ・スクリーニング対象銘柄の証券コードリストを取得し、そのまま②のスクリーニングメソッドに引き渡す。
    くらいのことしかしていない。人間の世界でいうと「仲介人」かと。
    568 : nobodyさん - 2008/04/02(水) 19:06:54 ID:??? (+28,+29,-9)
    >>565
    お前の目は節穴か・・・

    ってかこのソースあまりいいとは思えないな
    570 : nobodyさん - 2008/04/02(水) 19:09:00 ID:??? (+15,+17,-17)
    じゃあ本家railsのソースコードみせてやる
    571 : nobodyさん - 2008/04/02(水) 19:11:13 ID:??? (+27,+29,-41)
    コントローラに処理を詰め込みが正論か非か
    オープンソース見れば、すぐわかることだからな
    572 : nobodyさん - 2008/04/02(水) 19:15:29 ID:??? (+27,+29,-72)
    オープンソースといってもその質はピンキリだから

    > じゃあ本家railsのソースコードみせてやる
    おいっ! railsはフレームワークだ。
    もともとビジネスロジックは含まれてない!
    573 : nobodyさん - 2008/04/02(水) 19:18:52 ID:??? (+37,+28,-28)
    >>567
    全部コントローラで出来るし
    それをCakePHPでやる意味がわからんw
    574 : 516,522 - 2008/04/02(水) 19:46:05 ID:Ldo05SB7 (+40,+30,-100)
    >>573
    あー、「全部コントローラで出来るし」って言ってる時点でプロフェッショなるじゃないことが確定www
    議論しても理解できないんだろうな、「できる/できない」ということと「(プロとして)やるべき/べからず」
    といった本質的な点をwww

    コントローラでも全部やろうと思えばできることくらいわかっとるわいwww
    575 : nobodyさん - 2008/04/02(水) 19:58:32 ID:??? (+32,+29,-14)
    >>574
    CakePHPでやることじゃないことは確かwww
    576 : nobodyさん - 2008/04/02(水) 21:14:45 ID:??? (+33,+29,-86)
    ビジネスロジックはモデルに集約すべき
    議論としては面白い
    俺もその辺気になってた


    まあ俺はbakeしたコードの拡張から入ったクチだから全部controllerに書いちゃうけどなwww
    577 : nobodyさん - 2008/04/02(水) 21:37:43 ID:??? (+41,+30,-77)
    >>576
    俺もコントローラに書いてしまったけど、
    作り続けていくうちに、なんか無理が出てくるんだよ。

    なんでこんなに作りづらいんだ?って思っていたときに
    このスレにあった、ケーキの絵。あれで悟りを開けた気がする。
    あぁモデル中心でやればいいんだって。
    578 : nobodyさん - 2008/04/02(水) 21:58:22 ID:??? (+18,+23,-2)
    >>577
    その絵ってどれ?
    579 : nobodyさん - 2008/04/02(水) 21:58:46 ID:??? (+36,+29,-72)
    >>562
    モデルに書けって言うけど、何を書くの?
    関数で書けばいいの?モデル内のメソッドとして?

    >>565
    の言うとおり、実例も無いし具体的なメリットが分からない。
    今のところテストが楽って事はなんとなく分かった。
    580 : nobodyさん - 2008/04/02(水) 22:16:06 ID:??? (-27,-27,+0)
    >>578
    これの3ページ目
    http://cakephp.org/files/OCPHP.pdf
    581 : nobodyさん - 2008/04/02(水) 22:19:41 ID:??? (-26,-29,-57)
    > 関数で書けばいいの?モデル内のメソッドとして?

    モデル = ビジネスロジック用のクラス
    なんだから、言うまでも無くメソッドだろ
    582 : nobodyさん - 2008/04/02(水) 22:22:03 ID:??? (+24,+29,-24)
    >>580
    ありがとう,でもコントローラーよりモデルに重点おけよという一言で済む話かw
    583 : nobodyさん - 2008/04/02(水) 22:26:19 ID:??? (+29,+29,-5)
    >>581
    そうすると、どう幸せになれるわけ?
    584 : nobodyさん - 2008/04/02(水) 22:27:49 ID:??? (+31,+29,-16)
    >>583
    どう幸せになるかではなく、
    どう幸せになりたいか。

    貴方はプログラミングする上で、どうなったら幸せだと感じる?
    585 : nobodyさん - 2008/04/02(水) 22:57:59 ID:??? (+23,+24,-44)
    railsはコントローラーに重点を置くようになってるのではなぜ?
    586 : nobodyさん - 2008/04/02(水) 23:14:04 ID:??? (-25,-28,-5)
    >>574
    自分の安価間違ってね?516と522で筋が通ってない
    587 : nobodyさん - 2008/04/02(水) 23:53:19 ID:??? (+3,+2,-28)
    >>585
    railsでもモデルが一番重要なものですよ。
    588 : nobodyさん - 2008/04/03(木) 00:17:09 ID:??? (+27,+29,-32)
    モデルが一番重要なんてCakePHPだけの話
    松本に話したら鼻で笑われたよ
    589 : nobodyさん - 2008/04/03(木) 00:38:13 ID:??? (+27,+29,-9)
    松本といっても鼻の長いゾウをキャラクターにしている会社の松本だけどなw
    590 : nobodyさん - 2008/04/03(木) 00:48:42 ID:??? (+22,+29,-17)
    でもキリンさんも好きなんだろ?
    591 : nobodyさん - 2008/04/03(木) 10:10:52 ID:Z1Ohe4yI (+22,+29,-3)
    ビヘイバ話はおわったのか?
    592 : nobodyさん - 2008/04/03(木) 11:26:08 ID:??? (+2,+4,-3)
    Model は特定の環境に依存しない処理を行う部分である。
    593 : nobodyさん - 2008/04/03(木) 12:10:16 ID:??? (-17,-30,-103)
    たとえばの話なんですが、
    1.フォームから画像ファイルをアップロード
    2.アップロード結果・画像ファイルの不正検知
    3.2が成功時、元画像名をmd5したものをuploadsフォルダに保存
    4.3のファイル名をimage_fileカラムに格納
    という一連の処理があったばあい、
    今現在はコントロールとコンポーネントに書いてますが、
    モデルとビヘイビアに書くとしたら、
    2->バリデータに記述
    3->ビヘイビア
    4->モデル
    という感じなんでしょうか?
    594 : nobodyさん - 2008/04/03(木) 12:26:23 ID:??? (+27,+29,-21)
    ビヘイビアて1.2からだろ、
    最初から無いってことは必要性が薄いてことだよな
    595 : nobodyさん - 2008/04/03(木) 12:32:04 ID:??? (+27,+29,-47)
    ソースが読みやすければコントローラーで全部書いてもいいし
    モデルに書いて読みにくくなるなら、書かない方がいい
    結局はソースを読みやすくするために分けてるだけの話
    596 : nobodyさん - 2008/04/03(木) 12:32:23 ID:??? (+38,+29,-6)
    画像アップロードできるビヘイビアあるよ。
    正確には画像を保存できるビヘイビアだけどね
    http://bakery.cakephp.org/articles/view/actas-image-column-behavior
    597 : nobodyさん - 2008/04/03(木) 12:50:28 ID:??? (+37,+30,-86)
    結局はソースを見やすくする為にある。
    一番見やすいソースとは、なるべく何も書かないこと。

    画像をアップロードして保存というのは、本質的には
    テーブルに画像フィールドを作ってそこに格納することと変わらない。

    だからフィールド追加作業以外は、一切処理を変更しないで
    作れるというのが一番理想的。

    ビヘイビアを使えば、>>596のようにActsAsにわずかなフィールド情報を
    設定して終わりだけど、その他の方法でここまでスマートに作れるかな?
    598 : 593 - 2008/04/03(木) 13:32:44 ID:??? (+30,+27,-1)
    >>596-597
    ありがとうございます。
    こりゃ1.2にチャレンジしなきゃだな
    599 : nobodyさん - 2008/04/03(木) 13:49:15 ID:Z1Ohe4yI (+32,+29,-64)
    >ビヘイビアて1.2からだろ、
    >最初から無いってことは必要性が薄いてことだよな

    正確には1.1の頃からビヘイビアのディレクトリは用意されてたんだよな。
    おそらく必要性はあったのだけど、1.1.xのステイブル版までに実装できなかっただけなのでは?
    600 : nobodyさん - 2008/04/03(木) 14:22:02 ID:??? (+31,+29,-17)
    railsにはビヘイビア相当になるものが無いんだが、どうして
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について