ダメプログラマの技術メモ

プログラミングの技術メモや駄文など

CakePHP

CakePHP2.x系で多次元(三次元)配列をソートする

array_multisort関数を使用した二次元配列のソートはネット上によくあるのですが、三次元配列のソートに言及しているところはほとんどなかったので自作してみました。CakePHPはモデルメソッドの戻り値が[インデックス][モデル名][フィールド名]のような三次…

CakePHP2.x系でRESTful API(JSON)のSQLデバッグを簡単に行う方法

この記事で行うことは、http://127.0.0.1/cakephp/Test/indexのようにアクセスすればjsonのレスポンスが返り、http://127.0.0.1/cakephp/Test/index?debugのようにアクセスすれば通常のweb画面が表示される(SQLログの確認ができる)方法の解説です。 ソース…

CakePHP2.x系でバルクインサートを使用して高速なインサート処理を実現する

CakePHPで複数のレコードをDBに投入する時に、forループでsaveメソッドを何度も呼び出していませんか?今のプロジェクトでもそういったソースをよく見かけるのですが、とてつもなく遅い(;´Д`)ということで、今回はCakePHPでバルクインサートを使用してイン…

CakePHP 2.x系のbindModel+recursive=2はちょっとヤバイ?

CakePHPで3テーブル以上をbindModelで結合することってよくありますよね?しかも、その後に、findメソッドにrecursive=2を指定することってよくありますよね?(汗実はbindModelとrecursive>=2の組み合わせはSQLの発行回数が爆発的に増えてしまうことがある…

CakePHP 2.x系の更新時のSQL発行回数を減らしたい

今年7月に入ってから業務でCakePHPを使用しており、外国人プログラマ達によって書かれたソースの改修とパフォーマンス・チューニングを行っています。 その際、DB更新処理でSQLの発行回数を減らす必要が生じたので、その対応方法を述べたいと思います(需要…