PHP

[CakePHP] 実行前の生SQL文を取得する

プレースホルダを使ったSQLは実行後のクエリログを参照すれば実際に流したSQLの全文が取得できますが、実行前はそうもいきません。
さて、こういう時どうするかと考えた結果です。
CakePHP3.5 & MySQLで確認。
続きを読む

[CakePHP] JSONレスポンスで日本語をエンコードをさせない

PHPのjson_encode()関数はデフォルトでマルチバイトUnicode文字を\uXXXXにエンコードします。
PHP: json_encode - Manual

$values = [
  'message' => 'わけがわからないよ',
];

echo json_encode($values); // {"message":"\u308f\u3051\u304c\u308f\u304b\u3089\u306a\u3044\u3088"}

これによって読みづらくなる上に、データ量が増加してしまうばかりでメリットは薄いです。
CakePHPでJsonViewを使う場合にどうやって設定するかのメモ。
CakePHP3.5で確認。
続きを読む

[PHP] キーを維持したまま配列をシャッフルするシンプルな方法

PHPのshuffle()ってホラ、あれですよね?
キーを張り替えて混ぜてるから、キーが連番で振り直されちゃうっていう。
やはりキーを維持したまま混ぜたい時もあるんで、ashuffle()とかは無いし、どうするよって思ってやってみたら1行で実現できたのでメモ。

uasort($a, function() { return mt_rand(-1, 1); });

続きを読む

[CakePHP] しつこいSecurityコンポーネントをゆるくする

Securityコンポーネントで管理者ページだけBASIC認証をかけようと思ったのでAppControllerで読み込ませたところ、ユーザページのフォームでトークン発行や項目チェックがしつこく掛かってしまい、いろいろ取り回しがしづらくて困ったので、状況を打破してみた。
CakePHP 1.2.7にて確認。

続きを読む