私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 19ホール目【v3.3】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
CakePHP 3.5.7 リリース
http://bakery.cakephp.org/2017/12/05/cakephp_357_released.html
http://bakery.cakephp.org/2017/12/05/cakephp_357_released.html
>>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つだから
サブクエリーを多用すると遅くなる
メンテナンス性が高まる、とかいうメリットを考えてるかもしれんが、
速度を改善したくなったり、見やすいコードを書きたくなったりする時期が来た頃には手遅れやぞ?
サブクエリー内外で カラムが「*」の上、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つだから
サブクエリーを多用すると遅くなる
メンテナンス性が高まる、とかいうメリットを考えてるかもしれんが、
速度を改善したくなったり、見やすいコードを書きたくなったりする時期が来た頃には手遅れやぞ?
[CakePHP3] データ漏洩していませんか?RequestHandlerの危険性
http://qiita.com/mosaxiv/items/2ec84d2b2ec352e08e50
http://qiita.com/mosaxiv/items/2ec84d2b2ec352e08e50
>>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が定義されてないのに、これ全部例示する気にはならんわ
「遅延実行の仕組みで」って書いてあるのは無視か?
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が定義されてないのに、これ全部例示する気にはならんわ
ちんぺい @chinpei215
先日の RequestHandler に起因する脆弱性の公式アナウンスがありました。また非公式ですが私の方で翻訳を行っています。
http://mbstring.com/news/potential-information-disclosure-in-application-skeleton/
14:06 - 2017年12月10日
先日の RequestHandler に起因する脆弱性の公式アナウンスがありました。また非公式ですが私の方で翻訳を行っています。
http://mbstring.com/news/potential-information-disclosure-in-application-skeleton/
14:06 - 2017年12月10日
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;
}
$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;
}
CakePHP 3.5.8 リリース
http://bakery.cakephp.org/2017/12/11/cakephp_358_released.html
http://bakery.cakephp.org/2017/12/11/cakephp_358_released.html
バージョン1.3です
ページネーションのメタタグ作りたいんだけど、
ページネーションヘルパーから次のページのURLを絶対パスで引数付きで取得する方法ってありませんか?
コントローラーでベタ書きして渡せば出来ないことはないんだけど、スマートな書き方ってありませんか?
ページネーションのメタタグ作りたいんだけど、
ページネーションヘルパーから次のページのURLを絶対パスで引数付きで取得する方法ってありませんか?
コントローラーでベタ書きして渡せば出来ないことはないんだけど、スマートな書き方ってありませんか?
>>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);でどんなクエリーが出来るてるかみたほうが良い
よりによってそれかよ
まあ、需要があるなら書くが・・・
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);でどんなクエリーが出来るてるかみたほうが良い
>>314
ありがとうございます
ありがとうございます
CakePHP 3.5.9 リリース
http://bakery.cakephp.org/2017/12/26/cakephp_359_released.html
http://bakery.cakephp.org/2017/12/26/cakephp_359_released.html
CakePHP 3.5.10 リリース
http://bakery.cakephp.org/2017/12/28/cakephp_3510_released.html
http://bakery.cakephp.org/2017/12/28/cakephp_3510_released.html
renderはデフォルトで出力もする
$this->autoRenderあたりでオフれるはず
$this->autoRenderあたりでオフれるはず
いまどきFTPなんて欠陥プロトコルとそのクライアント使うなってことです
まあそれしか使わせて貰えないサーバーもあるだろよ
無料レンサバとかさ
無料レンサバとかさ
>>327
zipであげて解凍
zipであげて解凍
【苫米地英人】 宇宙人の存在は明らか <世界教師 マイトLーヤ> ビリーバーって怖いわ 【上念司】
http://rosie.5ch.net/test/read.cgi/liveplus/1516240795/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1516240795/l50
>>333
telnetて
telnetて
>>331
こんな便利なもんあったんだ
こんな便利なもんあったんだ
CakePHP 3.5.11 リリース
http://bakery.cakephp.org/2018/01/21/cakephp_3511_released.html
http://bakery.cakephp.org/2018/01/21/cakephp_3511_released.html
>>337
返事が遅くなってすみません。
それは試したのですが、配列すべてに__()を付けるのもどうかと思いまして・・・。
そういう方法しかないと言うなら納得します。もし他に方法があれば教えてください。
返事が遅くなってすみません。
それは試したのですが、配列すべてに__()を付けるのもどうかと思いまして・・・。
そういう方法しかないと言うなら納得します。もし他に方法があれば教えてください。
>>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);
とかやるでしょ? そのときにこーゆー無茶をやる
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);
とかやるでしょ? そのときにこーゆー無茶をやる
>>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ヶ前後ならナシでもないはず。
無茶の続き
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ヶ前後ならナシでもないはず。
>>339
文字列連結はこうかもしれん
$op1[$key]='__('.'''..$op..'''.')';
シングルクオーテーションの扱いも面倒だな
もっとスマートなやり方が考案できたら良いんだが、俺にはこれが精一杯
あとはqiita辺りをROMるほうがが吉かと
文字列連結はこうかもしれん
$op1[$key]='__('.'''..$op..'''.')';
シングルクオーテーションの扱いも面倒だな
もっとスマートなやり方が考案できたら良いんだが、俺にはこれが精一杯
あとはqiita辺りをROMるほうがが吉かと
$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')]
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')]
Cake2.10からPHPUnitの5が使えるようになったって話だけど
まともに動かないまま放置されてる
2系ももう終わりなんですかね
まともに動かないまま放置されてる
2系ももう終わりなんですかね
CakePHP 3.5.12 リリース
http://bakery.cakephp.org/2018/02/10/cakephp_3512_released.html
http://bakery.cakephp.org/2018/02/10/cakephp_3512_released.html
>>347
バグフィックスしてくれるだけで十分だわ。当分使えるし
バグフィックスしてくれるだけで十分だわ。当分使えるし
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [96%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 10ホール目【v1.3】 (1001) - [96%] - 2011/2/13 8:32
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [96%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [95%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [95%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [95%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [95%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [95%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [95%] - 2012/12/3 19:16
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [93%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 12ホール目【笑】 (1001) - [92%] - 2011/11/8 7:01
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [90%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [90%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [90%] - 2008/12/19 21:06 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [90%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [84%] - 2008/6/19 7:19 ○
トップメニューへ / →のくす牧場書庫について