Edited at

cakePHPで変数の中身をリアルタイムで出力する(初心者向け)

More than 3 years have passed since last update.


エラーログを参照するタイミング

普段はViewに変数の中身を出力していたが、Viewを使わない関数(アクション)を実行するとViewがないため変数の中身をブラウザに出力して確認出来ない。

変数の中身をリアルタイムで監視したい。

そんな時はエラーログを上手く使うと問題点の発見がスムーズにいきます。


cakePHPでerror.logの場所

htdocs/アプリ名/app/tmp/logs/error.log


error.logを開いてみる

①ターミナルを起動します。

普段からターミナルを使用していない人には少し抵抗があるかもしれませんが、

慣れると便利です。

②ターミナルでerror.logの場所までいこう

僕の環境はMACでMAMPを使ってPHPを動かしているのでerror.logまでのパスは

Application/MAMPhtdocs/アプリ名/app/tmp/logs/です。

このlogsフォルダの中に入っているerror.logを実行します。

③ターミナルでerror.logを開く

今回、error.logを開くには「tail -f」というコマンドを使います。

tailコマンドについてはこちらを御覧ください。

http://www.webhtm.net/unix/cmd/tail_cmd.htm

tail -f error.log

tailコマンド終了するにはcontrol+Cを押します。


cakePHP側の設定をする

設定をすると言ってもlog()関数にログファイルに吐き出したい変数を引数としていれて実行をするだけ。

$this->log(変数名);

例えば、


TestsController.php

class TestsController extends AppController {

//省略

function test(){

$this->autoRender = false;

$info = $this->Food->find('all');

$this->log($info);

}

}



エラーログを吐き出してみる

TestsControllerのtestアクションを実行するとfoodsテーブルから登録されている情報が全て取得されます。

そしてそれが$infoに格納されるのですが、その時に格納された情報がターミナルにリアルタイムに表示されます。

ターミナルの画面にfoodsテーブルの情報が追加されました。

ターミナルの操作なんかは使っているうちにどんどん慣れてくると思いますので、まずは一度使ってみてください。

そのうちターミナル無しじゃ開発できなくなってしまう日が来ることでしょう笑