ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

Labels:  CakePHP 投稿者:nakajiman

CakePHP 3.4 Console で Rails Console のように SQL クエリログを表示する方法

ステラ・ルーのぬいばが欲しい nakajiman です。

Rails Console と同じように CakePHP 3 Console を使いたいんですが、CakePHP Console ってモデルを操作しても、Console にクエリログが表示されないんです。なんでー。ギャー。

そんなときは、Log をカスタマイズして、クエリロゴを標準エラーに出力すれば OK です。次の魔法の 4行を Console に貼り付けます。

>>> use Cake\Log\Log;
>>> Log::config('queries', ['className' => 'Console', 'stream' => 'php://stderr', 'scopes' => ['queriesLog']]);
>>> $cm = \Cake\Datasource\ConnectionManager::get('default');
>>> $cm->logQueries(true);

そうすると、モデルを操作すると、次のように Console にクエリログが表示されるようになります。

>>> use Cake\ORM\TableRegistry;
>>> $User = TableRegistry::get('Users');
>>> $User->exists(['id' => 1]);
2017-07-11 11:43:44 Debug: duration=3 rows=1 SELECT 1 AS `existing` FROM users Users WHERE id = 1 LIMIT 1

なんて素敵なことでしょう~ (ミニーマウス風に)

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。


【中途採用】
サービスリードエンジニア
テックリード(アーキテクト)
フロントエンドエンジニア
サーバーサイドエンジニア
業務エンジニア(社内システム基盤・基幹システム)

【インターン・学生バイト】
19新卒対象サマーインターン
エンジニアインターン

その他採用情報

関連記事

PHP5.6→7.3移行が完了しました

SREチームの金澤です。 PHP5.6→7.3バージョンアップが完了しました。 PHP5.3→5.6バージョンアップが完了してから約2カ月での移行となりました。 今回、その対応内容と結果を報告したいと思います。 バージョンアップ準備 PHP7化については、有用 …

PHPカンファレンス福岡2018に登壇しました

SREチームの金澤です。 2018/06/16(土)に、PHPカンファレンス福岡に登壇させていただきました。 昨年に続き、2度目の登壇となりました。 この度は、採択していただきありがとうございました。 登壇内容 CakePHP 1.3 + PHP 5.3 → …

CakePHP3.5における各種実装例 ~ LancersTop 開発現場より ~

こんにちは エンジニアの上野 です。本日「CakePHP3.5における各種実装例」という題目で登壇するので、発表資料をアップロードします。資料として使えるようにコード例などを厚めに盛り込んだスライドですので役に立てると嬉しいです。 CakePHP3.x での各 …