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

    私的良スレ書庫

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

    元スレ【PHP】フレームワーク CakePHP 19ホール目【v3.3】

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    301 : nobodyさん - 2017/12/06(水) 14:52:10.72 ID:???.net (-1,-29,-13)
    302 : nobodyさん - 2017/12/07(木) 00:57:09.21 ID:???.net (+11,-30,-244)
    >>296
    サブクエリー内外で カラムが「*」の上、WHEREもJOINも無い
    エスパー推測で以下のよーなSQLを使いたい、と勝手に解釈する

    SELECT col1,col2 FROM
    (SELECT col1,col2,col3 FROM TableA WHERE col1=5);

    これと似た構造をCakePHP3のクエリビルダで書けるには書けるが、
    「遅延実行」という仕組みがある為、生成されるSQLは大体こうなる

    SELECT col1,col2 FROM TableA WHERE col1=5;

    あと、MySQLとMariaDBでは1回のSQLで使えるインデックスは1つだから
    サブクエリーを多用すると遅くなる
    メンテナンス性が高まる、とかいうメリットを考えてるかもしれんが、
    速度を改善したくなったり、見やすいコードを書きたくなったりする時期が来た頃には手遅れやぞ?
    303 : nobodyさん - 2017/12/07(木) 10:47:18.54 ID:???.net (-1,-29,-47)
    [CakePHP3] データ漏洩していませんか?RequestHandlerの危険性
    http://qiita.com/mosaxiv/items/2ec84d2b2ec352e08e50
    304 : nobodyさん - 2017/12/07(木) 11:10:22.61 ID:???.net (+57,+29,-6)
    何でもかんでも自動化しすぎた弊害やな
    ひどすぎ
    305 : nobodyさん - 2017/12/10(日) 01:03:05.30 ID:GTT9hkGC.net (+33,+29,-49)
    >>302
    クエリが変わってるんですけど・・・
    あとたったこれだけのサブクエリでレスポンスが遅くなるとは思えないんですけど・・・
    306 : nobodyさん - 2017/12/10(日) 01:41:05.50 ID:???.net (+57,+29,-19)
    そこまで言うやつがなんでそんな質問した?
    307 : nobodyさん - 2017/12/10(日) 11:28:32.59 ID:???.net (+25,-30,-253)
    >>305
    「遅延実行の仕組みで」って書いてあるのは無視か?

    SQLが短いのは、クエリビルダ使用前と使用後の違いを目立たせるため
    実務なら普通に1行で書く
    $hoge=$this->TableAs->find()->select(['col1','col2'])->where(['col1'=>5]);
    (TableAがTableAs になってる、とか言い出すアホはいないと信じたい)

    で、2重構造にするなら思いつくだけでも3つ以上ある
    1 VIEW を使う
    2 Modelにサブクエリ風のfunction書く
    3 ModelにbyHoge(Query,$options=[])を用意してControllerからfindbyhogeで呼ぶ
    4 Cpntroller内でクエリビルダを2回使う
    TableAが定義されてないのに、これ全部例示する気にはならんわ
    308 : nobodyさん - 2017/12/10(日) 14:19:32.34 ID:???.net (+26,-30,-67)
    ちんぺい @chinpei215
    先日の RequestHandler に起因する脆弱性の公式アナウンスがありました。また非公式ですが私の方で翻訳を行っています。
    http://mbstring.com/news/potential-information-disclosure-in-application-skeleton/
    14:06 - 2017年12月10日
    309 : nobodyさん - 2017/12/10(日) 15:04:32.13 ID:???.net (+44,+9,-7)
    >>308

    >>35で指摘されてた仕様バグか。
    310 : nobodyさん - 2017/12/10(日) 15:30:49.58 ID:???.net (+3,-30,+0)
    35で指摘した本人だけど、AppControllerのbeforeRenderから
    $this->set('_serialize', true);
    を削除する対応よりは、
    _serialize変数が宣言されていなければ
    $this->set('_serialize', []);
    を設定するという対応のほうが良いと思うんだが。

    RequestHandlerはviewの切り替え以外でも使われるわけで、RequestHandlerを
    使うなという対応よりは、使われる前提での対応のほうが適切かと思う。
    というか$this->set('_serialize', true)はクソ仕様。

    public function beforeRender(Event $event)
    {
    $return = parent::beforeRender($event);
    if (!array_key_exists('_serialize', $this->viewVars) &&
    in_array($this->response->type(), ['application/json', 'application/xml'])
    ) {
    $this->set('_serialize', []);
    }
    return $return;
    }
    311 : nobodyさん - 2017/12/11(月) 20:38:38.48 ID:xIATB1iO.net (+34,+29,-5)
    >>307
    ありがとうございます
    4番ってどうやるのか教えていただけると助かります
    312 : nobodyさん - 2017/12/12(火) 14:39:24.31 ID:???.net (-1,-29,-13)
    313 : nobodyさん - 2017/12/13(水) 22:58:13.63 ID:???.net (+56,+23,-88)
    バージョン1.3です
    ページネーションのメタタグ作りたいんだけど、
    ページネーションヘルパーから次のページのURLを絶対パスで引数付きで取得する方法ってありませんか?

    コントローラーでベタ書きして渡せば出来ないことはないんだけど、スマートな書き方ってありませんか?
    314 : nobodyさん - 2017/12/14(木) 02:40:39.11 ID:???.net (+18,-30,-213)
    >>311
    よりによってそれかよ
    まあ、需要があるなら書くが・・・
    1つめのクエリー
    $hoge=$this->TableAs->find()->select(['col1','col2','col3'])->where(['col1'=>5]);
    2つめのクエリー
    $fuge=$hoge->select(['col1','col2']);

    controller内でデータとして使うときは、
    全件取得:$koge=$fuge->all();
    最初の一件だけ取得:$koge=$fuge->first();
    で実体化する
    あとは、debug($koge);
    で中身を表示・確認しながら好きなように使う
    それと、 debug($fuge);でどんなクエリーが出来るてるかみたほうが良い
    315 : nobodyさん - 2017/12/15(金) 00:53:30.90 ID:???.net (+57,+29,-6)
    何だかんだでアドベントカレンダー全部埋まってるよね
    316 : nobodyさん - 2017/12/15(金) 13:08:41.92 ID:8lbMqtX+.net (+11,+18,+1)
    >>314
    ありがとうございます
    319 : nobodyさん - 2017/12/19(火) 01:20:37.04 ID:???.net (-5,-23,+0)
    join
    320 : nobodyさん - 2017/12/19(火) 10:21:33.97 ID:???.net (-6,-29,+0)
    bindingKey
    321 : nobodyさん - 2017/12/28(木) 01:35:32.25 ID:???.net (-1,-29,-13)
    322 : nobodyさん - 2017/12/30(土) 00:30:26.70 ID:???.net (-1,-29,-13)
    323 : nobodyさん - 2017/12/30(土) 03:27:06.07 ID:???.net (+51,+28,-29)
    暇つぶしでリリースしているのか?
    326 : nobodyさん - 2018/01/12(金) 13:41:33.42 ID:???.net (-1,-29,-22)
    renderはデフォルトで出力もする
    $this->autoRenderあたりでオフれるはず
    328 : nobodyさん - 2018/01/16(火) 19:40:29.05 ID:7wPVJOiZ.net (+13,+18,-31)
    いまどきFTPなんて欠陥プロトコルとそのクライアント使うなってことです
    329 : nobodyさん - 2018/01/16(火) 22:25:46.91 ID:???.net (+57,+29,-11)
    まあそれしか使わせて貰えないサーバーもあるだろよ
    無料レンサバとかさ
    330 : nobodyさん - 2018/01/18(木) 04:59:32.04 ID:???.net (+52,+3,+0)
    >>327
    zipであげて解凍
    331 : nobodyさん - 2018/01/18(木) 18:57:22.14 ID:???.net (+24,-29,-10)
    >>327
    Oven使ってインストールするってのはどう?
    cookbookにも掲載されている方法です
    332 : nobodyさん - 2018/01/18(木) 21:20:01.10 ID:aiDWL0In.net (+11,+11,-31)
    【苫米地英人】 宇宙人の存在は明らか <世界教師 マイトLーヤ> ビリーバーって怖いわ 【上念司】
    http://rosie.5ch.net/test/read.cgi/liveplus/1516240795/l50
    333 : nobodyさん - 2018/01/18(木) 22:31:20.43 ID:???.net (+66,+29,-9)
    >>330
    telnetすら使えない場合解凍のスクリプトがいるけどな

    そのライブラリもなければお手上げ
    334 : nobodyさん - 2018/01/19(金) 09:38:56.90 ID:???.net (+2,-28,+0)
    >>333
    telnetて
    335 : nobodyさん - 2018/01/19(金) 11:37:34.85 ID:???.net (+61,+29,-2)
    >>331
    こんな便利なもんあったんだ
    337 : nobodyさん - 2018/01/20(土) 22:39:08.89 ID:???.net (+25,-30,-24)
    >>336
    $this->Form->input('hobby', array('options' => array(__('cooking'), __('sports'))));
    は試したか?
    338 : nobodyさん - 2018/01/23(火) 12:16:01.84 ID:???.net (-1,-29,-13)
    339 : nobodyさん - 2018/01/23(火) 13:29:17.81 ID:???.net (+85,+29,-19)
    >>337
    返事が遅くなってすみません。
    それは試したのですが、配列すべてに__()を付けるのもどうかと思いまして・・・。
    そういう方法しかないと言うなら納得します。もし他に方法があれば教えてください。
    340 : nobodyさん - 2018/01/24(水) 23:46:46.33 ID:???.net (+12,-30,-130)
    >>339
    foreachでムリクリ「__()」くっつける方法とか、
    対訳テーブルをdb上に作っといて「__d('cooking','料理') , __d('sports','スポーツ')」って出力するとか
    いまいちパッとしない
    後者についてはdb使うから、foreachだけより遅くなるかも
    とりあえず前者だけ書いとく
    ふつうはTemplateに直書きせずに
    Controller側
    $ops=array();
    $ops[]='cooking';
    $ops[]='sports';
    $this->set('ops',$ops);
    Template側
    echo $this->Form->input('hobby',$opt);
    とかやるでしょ? そのときにこーゆー無茶をやる
    341 : nobodyさん - 2018/01/24(水) 23:50:17.60 ID:???.net (+13,-30,-147)
    >>339
    無茶の続き
    Controller側
    $ops=array();
    $ops[]='cooking';
    $ops[]='sports'; //ここまで上と同じ

    $op1=array(); //新しい配列
    foreach($ops as $key=>$op){ //$key に添え字、$opに内容が入る
    $op1[$key]='__('.$op.')'; //文字列連結
    }
    $this->set('ops',$op1);

    Template側(上と同じ)
    echo $this->Form->input('hobby',$opt);

    foreachは、配列が大きいと実行時負荷が半端じゃ無いけど、10ヶ前後ならナシでもないはず。
    342 : nobodyさん - 2018/01/25(木) 00:07:55.21 ID:???.net (+18,-30,-49)
    >>339
    文字列連結はこうかもしれん
    $op1[$key]='__('.'''..$op..'''.')';
    シングルクオーテーションの扱いも面倒だな
    もっとスマートなやり方が考案できたら良いんだが、俺にはこれが精一杯
    あとはqiita辺りをROMるほうがが吉かと
    343 : nobodyさん - 2018/01/25(木) 00:11:36.34 ID:???.net (+0,-30,-16)
    >>342
    あああ、また間違えた、書くならこっちだ
    $op1[$key]='__('.'''.$op.'''.')';
    344 : nobodyさん - 2018/01/28(日) 21:58:21.01 ID:???.net (+3,-30,-139)
    $keyじゃないな。たぶんこれでいけると思う
    Controller側
    $ops=array();

    //ここからoption内容作成
    $ops[]='cooking';
    $ops[]='sports';
    //ここまでoption内容作成

    $op1=array(); //新しい配列
    foreach($ops as $op){
    $op1[$op]='__('.'''.$op.'''.')'; //文字列連結
    }
    $this->set('ops',$op1);

    Template側
    echo $this->Form->input('hobby',$opt);

    $optの内容:['cooking'=>__('cooking'),'sports'=>__('sports')]
    346 : nobodyさん - 2018/02/04(日) 04:48:00.08 ID:???.net (+4,-23,-15)
    Cake2.10からPHPUnitの5が使えるようになったって話だけど
    まともに動かないまま放置されてる
    2系ももう終わりなんですかね
    347 : nobodyさん - 2018/02/11(日) 22:03:55.93 ID:???.net (+31,-29,-13)
    348 : nobodyさん - 2018/02/13(火) 12:34:52.11 ID:???.net (+71,+29,-7)
    >>347
    バグフィックスしてくれるだけで十分だわ。当分使えるし
    349 : nobodyさん - 2018/02/19(月) 21:42:55.00 ID:???.net (+62,+29,-35)
    ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
    両院で、改憲議員が3分の2を超えております。
    『憲法改正国民投票法』、でググってみてください。国会の発議は
    すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
    350 : nobodyさん - 2018/02/20(火) 02:02:52.52 ID:???.net (-1,-29,-32)
    CakeFest 2018 のチケットが販売中ですよ
    今年は6月14日から17日まで、米テネシー州ナッシュビルで開催されます
    http://cakefest.org/
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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