PHPのエラーメッセージ及びvar_dumpを見やすく表示するライブラリ「Tracy」の利用方法
ここのところPHPでの開発時にvar_dumpをツールバー表示する「Kint」及びエラーメッセージ画面をリッチにする「PHP Error」ライブラリを使用しているが、どちらの機能も搭載しており尚且つ更新も活発な「Tracy」というライブラリを見つけた。以下に使用方法をメモ。
目次
Tracy
公式サイト
リファレンス
https://tracy.nette.org/en/guide
デモページ
https://nette.github.io/tracy/tracy-exception.html
GitHub
https://github.com/nette/tracy
インストール
composerを利用する場合
サーバにSSH接続し以下コマンドでインストールする。
composer require tracy/tracy
composerを利用しない場合
こちらのページからtracy.pharをダウンロードして適当なディレクトリにアップロードし、以下で読み込む。
require 'tracy.phar';
尚、今回はこちらの方法でインストールした。
利用方法
基本設定
<?php use Tracy\Debugger; require 'tracy.phar'; //デバッガーをON(自身の接続IPアドレスを指定) Debugger::enable('111.222.333.444'); //エラーログの保存場所を絶対パスで指定 Debugger::$logDirectory = __DIR__ . '/log'; //エラーログ設定 Debugger::$logSeverity = E_NOTICE | E_WARNING; //全てのエラーを表示 #Debugger::$strictMode = true; //非推奨の通知を除くすべてのエラーを表示 Debugger::$strictMode = E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED;
Tracyは開発モードと本番モードがあり、ざっくりと以下の部分が異なる模様。
- 開発モード → エラーメッセージを画面上に表示。エラーログは指定しないと出力されない
- 本番モード → エラーメッセージは画面上に表示しない。エラーログは自動で出力される
開発 or 本番モードは自動検出されるようで「Debugger::enable('111.222.333.444');」部分を自身の接続IPアドレスを指定しないと本番モードとして検出された(デフォルトだとlocalhostのみ開発モードとして検知されるっぽい)。
手動でエラーログを出力
Debugger::log('〇〇エラー発生', Debugger::ERROR);
前述の通り開発モード中にエラーログを出力させたい場合は上記のように記述する必要がある。
var_dumpをツールバーに出力
$arr = [10, 20.2, true, null, 'hello']; //ツールバーにdump bdump($arr);
var_dump関連の詳細についてはこちらのページを参照。
処理時間計測をツールバーに出力
Debugger::timer(); sleep(1); $elapsed = Debugger::timer(); bdump($elapsed); //float(1.0000970363616943)
所感
更新頻度が割と活発
「Kint」及び「PHP Error」ライブラリも特に悪くないんだけど後者の「PHP Error」の方が2012年に作成後アップデート無しだったため、今後いつ使えなくなるか分からないという不安があった。
「Tracy」は最終更新が2023/9/25となっており、更新頻度も割と活発でその辺りは安心できそう。
多機能
今回は最低限必要そうな機能のみ書いたが、リファレンスによるとエラーログをメールで送信できたり、プラグイン機能があったりと多機能なライブラリとなる。
関連記事
-
PHPでExcelシートを出力する方法(PhpSpreadsheet)
PHPでエクセルシートを出力させたい。以前はPHPExcelを利用していたが現在 ...
-
HTML / CSSで作成したコンテンツをPDFファイルで出力する方法(TCPDF)
HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mp ...
-
PHPでvar_dumpをツールバー形式で表示するライブラリ「Kint」の使い方
PHPでvar_dumpを見やすくするためにdBugライブラリを利用しているが、 ...
-
PHPで配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法
PHPで配列を確認する際、大抵var_dumpで出力させているがこれが見づらい。 ...
-
PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法
PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...