概要
デバッグや変数の内容のチェックを行う際に、通常であればvar_dump()等の関数を使います。
しかし、controllerではvar_dumpを使ってもviewが描画されないのでチェックができません。
そこで、ロギングをして、確認したい内容をログファイルに書き出す必要があります。
ロギング
コード
以下のコードでロギングを行います
/src/Controller/SamplesController.php
<?php
・・・省略
namespace App\Controller;
use Psr\Log\LogLevel;
class SamplesController extends AppController
{
public function test(){
$text = "あいうえお";
$array = [1,2,3,4,5];
//Controller内では、以下のコードでデバッグできない。
//var_dump($text);
$this->log('テキストのチェック ={text}', LogLevel::ERROR, ['text' => $text]);
$this->log('配列のチェック ={array}', LogLevel::ERROR, ['array' => $array]);
}
}
ログチェック
上記のコードによって、cakePHPのパス/logs/error.logにロギングされますので、それをチェックします。
以下のようにerror.logに記載されています。
2023-11-03 12:35:26 error: テキストのチェック =あいうえお
2023-11-03 12:35:26 error: 配列のチェック =[1,2,3,4,5]
テキストだけでなく配列であっても、普通に内容を確認できています。
参考
CakePHP 4.x Strawberry Cookbook:ロギング
コメント