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

    私的良スレ書庫

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

    元スレ【PHP】フレームワーク CakePHP 17ホール目【v2.4】

    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
    401 : nobodyさん - 2014/05/10(土) 12:53:17.49 ID:???.net (+25,+29,-40)
    そうやって批判する奴って何も具体的な事言えない奴ばかりだよな
    実際どのくらいのスキルある奴なんだろう
    402 : nobodyさん - 2014/05/10(土) 14:23:07.62 ID:???.net (+6,+3,-64)
    Composerは確かにほかの言語のと比べて使いにくい印象はあるけど、
    git submoduleしないとパッケージのバージョンを管理できないなんて、
    なに言ってるかわからないレベルなんだが。
    そんなことあるんかね?
    403 : nobodyさん - 2014/05/10(土) 15:56:06.47 ID:???.net (+27,+29,-49)
    お前らのMVCは間違ってる!ってRails式を散々disるスライドがあったが
    ものがちゃんと作れれば別にいいわけで、正しいからどうだってのがよくわからん
    404 : nobodyさん - 2014/05/10(土) 17:17:38.04 ID:???.net (-22,-24,-22)
    >>401
    DBから取ってきたデータがarrayになってる部分だと思われ
    Cake3でようやくオブジェクトになるようだが
    405 : nobodyさん - 2014/05/10(土) 17:24:14.35 ID:???.net (+33,+29,-22)
    それよく聞くけど、オブジェクトの方が便利なん?
    書き方が変わるだけのような気がするけど
    406 : nobodyさん - 2014/05/10(土) 17:30:12.91 ID:???.net (-26,-29,-83)
    Cake3を少し試してみたがEntity使えるだけでも結構変わるね
    特にViewがスッキリするのはもちろんだけど今までHelperやControllerに溢れがちだったロジックもEntityクラスに置けるのが結構あるしテストも楽
    array+Hash・Setに比べたら開発効率やコードの読みやすさは段違いに上がる


    でも2から3への移行は大変そう
    407 : nobodyさん - 2014/05/10(土) 17:30:20.29 ID:???.net (+32,+29,-44)
    >>405
    Modelのメソッドはすべてstaticです、なんて言ったらJavaやRubyなどのオブジェクト指向に
    慣れ親しんだ人たちから見れば、なにそのふざけた設計は?とキレられるレベル
    410 : nobodyさん - 2014/05/10(土) 23:47:42.75 ID:???.net (+27,+29,-35)
    PHP4懐かしいな
    修飾子やら例外やらオートローダーが無いとか
    参照渡ししないとクローンになるとかいろいろあるが
    ActiveRecordの足かせになりそうな制約はないな
    411 : nobodyさん - 2014/05/11(日) 13:33:38.34 ID:???.net (-14,-7,-12)
    最近、嫌static厨が多くて困る
    412 : nobodyさん - 2014/05/11(日) 13:37:57.50 ID:???.net (+27,+29,-17)
    static に出来るものはそのほうが良いのにね。
    見極めができないんかもな。
    413 : nobodyさん - 2014/05/11(日) 15:03:25.90 ID:???.net (+27,+29,-4)
    「全部static」はさすがに嫌われて当然
    414 : nobodyさん - 2014/05/11(日) 15:07:39.63 ID:???.net (+20,+29,+0)
    さすがにそんなヤツはおらんやろ
    415 : nobodyさん - 2014/05/11(日) 15:08:05.37 ID:???.net (-18,-29,-31)
    staticとかpublicとか分別するとどんなメリットがあるの?もうおっさんだから、今だにわからない。
    function hoge を _hogeにする時はあるけど。

    どなたかご親切な人
    わかりやすく教えてくれませんか?
    416 : nobodyさん - 2014/05/11(日) 15:18:12.11 ID:???.net (-24,-29,-9)
    >>414
    CakeのModelはまさに「全部static」なんだが…
    417 : nobodyさん - 2014/05/11(日) 15:37:28.00 ID:???.net (+24,+29,-1)
    >>416


    どこを言ってるんだろう
    419 : nobodyさん - 2014/05/11(日) 18:47:27.75 ID:???.net (+37,+29,-95)
    >>399
    > つまり結局はタイミングの問題でしかなくて、言語の優劣がどうとか、フレームワークの優劣がどうとか、といった観点は殆ど無く選びました。
    つまり結局は、他に行ったから、とりあえず元鞘を叩いておくかっていう3流エンジニアの日常か
    420 : nobodyさん - 2014/05/12(月) 01:19:34.02 ID:???.net (+25,+29,-37)
    >>415
    それマジで質問してるならこんなところにいないで
    基本的なオブジェクト指向の勉強したほうが良いよ。
    421 : nobodyさん - 2014/05/12(月) 01:30:03.56 ID:???.net (+30,+30,-112)
    >>415
    static のメリットをひとことで言うと、状態を持たない(状態が変化しない)
    振る舞いを提供することにより、インスタンス化した場合に本来であれば考慮するべき
    状態変化の副作用から開放されることではないかと。

    まず間違いなく、テストは超簡単になる。

    一方、アクセス修飾子のメリットはひとことで言うと
    安全な設計が簡単にできるってことではないかと。
    その点 CakePHP はメンバー変数の修飾子に public を使いまくってて恐ろしいほどではある。
    422 : nobodyさん - 2014/05/12(月) 01:35:05.49 ID:???.net (-22,-29,-207)
    俺もstaticって使いどころがいまいちわからん。
    特にphpはランタイムが短すぎて、1回しか使わないオブジェクトが多く、
    staticを変に意識すると、むしろなんでもstaticでいいんじゃないかと思えてきてしまってこわい。
    逆にstaticにしないと困るような事も、あんまないから、よくわからないままで結局staticは使わないという

    >>415
    たとえばモデルに、とある機能を作ってたら100行を超える長いメソッドになってしまい、一部を切り出したけど、
    コントローラーから直接切り出したメソッドを呼ばれるのは想定外って場合に、
    protectedかprivateにしておけば、呼ばれることがない。

    protectedとprivateは、コントローラーやモデルを触ってるくらいなら、
    正直使い分けが活きることがほとんどない気がする。
    強いて例を出すと、AppController内の処理で切り出したメソッドが、ほかのコントローラーから呼ばれるのが想定外なら、
    privateにしておくと呼ばれなくなる。
    423 : nobodyさん - 2014/05/12(月) 01:45:18.99 ID:???.net (+32,+29,-56)
    >>422
    >なんでもstaticでいいんじゃないかと

    だけどオブジェクトの状態に依存しないメソッドなんて
    そうそう作る機会はないと思うんだが、
    もし可能なら作って問題無いと思うんだけど?
    というか、むしろ作るべき。
    424 : nobodyさん - 2014/05/12(月) 02:01:04.78 ID:???.net (+10,+2,-241)
    >>423
    もちろん、思えてきてしまうだけで、よく考えるとダメな事がほとんどなんだけどね。
    クラスやメソッドを書き始めるときに、まずこれはstaticにできるか?
    と考えると、問題ないような気がしてしまうんよ。

    そういえば、かなり昔だけどCakePHPを使い始める前のオレオレフレームワークでは、
    データベースアクセスするとこ全部staticメソッドにしちゃってたなぁ。
    いわゆるCRUDに対応したメソッドがあるだけだったし、データはオブジェクトじゃなくて連想配列だったから、
    インスタンスいらないなぁと思って。
    あとバリデーターもstaticメソッドだったなぁ。
    バリデーションはコントローラーでやってたから、CakePHPでいうバリデーションルールの配列みたいなのは、
    コントローラーに書いて、AppController的な親にvalidateメソッドを作ってた。
    425 : nobodyさん - 2014/05/12(月) 02:19:15.31 ID:???.net (+21,+23,+0)
    このスレにはガチのstaticおじさんが居る気がする
    427 : nobodyさん - 2014/05/12(月) 10:30:47.47 ID:???.net (-9,-30,+0)
    >CakePHPのModelはまさに「全部static」

    言いたいことは何となく分かる
    他のフレームワークだとModelのstaticメソッドがテーブル(Repository)の操作
    インスタンスメソッドがレコード(Entity)ごとの操作に対応してるのが多い

    CakePHP2まではEntityがないので
    そういう他のFWから入ってModelのインスタンスはEntityだろと決めつけてかかると
    ModelにRepositoryの要素しかなくてfindもインスタンスメソッドという点に違和感をおぼえる

    CakePHP3だとEntityクラスとTableクラスがそれぞれ用意されるからギャップが減る
    クラスが分かれるからfindがインスタンスメソッドなのは変わらないけど
    DDDを意識した設計で個人的には好感触


    というか他のFWのstaticなfindも
    RepositoryないしQueryに相当するオブジェクトのインスタンスメソッドに処理放り投げてるだけだろうし
    ただ単に使い勝手とどこまでFWが暗黙的に処理するかってだけの問題な気がする
    428 : nobodyさん - 2014/05/12(月) 10:33:48.09 ID:???.net (-29,-30,-119)
    >>426
    状態依存しないメソッドなら問題ないけど
    CakePHP の Model のオブジェクトって状態を持ってるから無理だよ。

    たとえば同じPostクラスのオブジェクトが2個あったとして
    $Post1->id = 1;
    $Post2->id = 2;
    ってした場合にメソッドが static なら破綻する。
    429 : nobodyさん - 2014/05/12(月) 10:36:05.68 ID:???.net (+16,+26,+1)
    >>427
    なるほど
    430 : nobodyさん - 2014/05/12(月) 10:47:42.76 ID:???.net (+1,+9,-16)
    >>428
    findと何か関係あるのそれ?
    432 : 427 - 2014/05/12(月) 11:59:05.87 ID:???.net (-23,-30,-58)
    >>430
    例えを簡単にするつもりだったが $id は関係無かったか。
    要するに find が参照するプロパティのうち
    状態依存のものが沢山あるってこと。

    例えば
    $Post1->primaryKey = sid;
    $Post2->primaryKey = cid;
    とか
    437 : nobodyさん - 2014/05/12(月) 13:24:21.16 ID:???.net (+30,+29,-149)
    >>432

    CakePHPのモデルが状態を持ってることが、むしろ混乱の元になってる気がするけどな。
    ループ内でsaveするならcreateしろ、とか。
    結局find()したら連想配列を返すし、save()だってモデルにデータ持たせたりせずsave()に引数渡すことばかりじゃない?
    よく使うfindとsaveで違和感を感じるだけで、インスタンスである必要な機能もあるけど。

    まぁ言いたい事はたぶん >>427 と似たようなことなんだろうけど、
    ほかのフレームワークをあまり触ってないから、違和感レベルでしか語れない。
    439 : nobodyさん - 2014/05/12(月) 13:49:48.47 ID:???.net (+21,+29,-49)
    >>438
    ありがとうございます。試してみました。

    verify()でしばらくかかりましたが、真っ白な画面がリターンされました。
    これはツリーに不整合などの異常がなかったということですよね。
    440 : nobodyさん - 2014/05/12(月) 14:00:55.26 ID:???.net (-26,-29,-40)
    >>439

    時間かかってなおかつ白い画面ってことはタイムアウトですね。
    かなり大きいんですね。
    成功すれば bool(true) が返る。

    Shell でやってログに書き込んで確認してみたらいいかも。
    441 : nobodyさん - 2014/05/12(月) 14:03:28.70 ID:???.net (+32,+29,-18)
    タイムアウトで白い画面って・・・もしかして本番環境・・・?
    444 : nobodyさん - 2014/05/12(月) 14:11:10.17 ID:???.net (+32,+29,-5)
    >>441
    いいえ、本番のデータをまるまるコピーしてきましたが、デバッグ環境です。
    447 : nobodyさん - 2014/05/12(月) 14:15:27.41 ID:???.net (-16,-30,-52)
    >>446
    Configure::write('debug', 2);

    でやりましたが、白画面でした。
    448 : nobodyさん - 2014/05/12(月) 14:27:56.28 ID:???.net (-27,-30,-312)
    Console/commant/VerifyHogeShell.php

    classVerifyHogeShell extends AppShell {

     protected function result() {
      $Hoge = ClassRegistry::init('Hoge');
      return $Hoge->verify();
     }

     public function show() {
      debug($this->result());
     }

     public function dump() {
      //!TODO ログに書き込むロジックを記述
     }

    }

    こんなファイルを作って

    $Console/cake VerifyHoge show

    とか

    $Console/cake VerifyHoge dump

    とか

    Shell の作り方・使い方はぐぐれば幾らでも出てくる
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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