8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-11-21

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

普段はViewに変数の中身を出力していたが、Viewを使わない関数(アクション)を実行するとViewがないため変数の中身をブラウザに出力して確認出来ない。
変数の中身をリアルタイムで監視したい。
そんな時はエラーログを上手く使うと問題点の発見がスムーズにいきます。

cakePHPでerror.logの場所

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

error.logを開いてみる

①ターミナルを起動します。
普段からターミナルを使用していない人には少し抵抗があるかもしれませんが、
慣れると便利です。

スクリーンショット 2015-11-21 23.06.15.png

②ターミナルでerror.logの場所までいこう
僕の環境はMACでMAMPを使ってPHPを動かしているのでerror.logまでのパスは
Application/MAMPhtdocs/アプリ名/app/tmp/logs/です。
このlogsフォルダの中に入っているerror.logを実行します。

スクリーンショット 2015-11-21 23.06.48.png

③ターミナルでerror.logを開く
今回、error.logを開くには「tail -f」というコマンドを使います。
tailコマンドについてはこちらを御覧ください。
http://www.webhtm.net/unix/cmd/tail_cmd.htm

tail -f error.log

スクリーンショット 2015-11-21 23.07.26.png

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テーブルの情報が追加されました。

スクリーンショット 2015-11-21 23.08.56.png

ターミナルの操作なんかは使っているうちにどんどん慣れてくると思いますので、まずは一度使ってみてください。
そのうちターミナル無しじゃ開発できなくなってしまう日が来ることでしょう笑

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?