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となっており、更新頻度も割と活発でその辺りは安心できそう。
多機能
今回は最低限必要そうな機能のみ書いたが、リファレンスによるとエラーログをメールで送信できたり、プラグイン機能があったりと多機能なライブラリとなる。
関連記事
-
-
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...
-
-
PHPでOGPタグ(metaタグ)を簡単に取得できる「OpenGraph.php」の利用方法
PHPでOGPタグ(metaタグ)を取得する際、file_get_content ...
-
-
PHPでダミー画像(プレースホルダー画像)を表示する「PHP-Dummy-Image-Generator」の利用方法
先日JavaScriptでダミー画像(プレースホルダー画像)を表示する「Hold ...
-
-
PHPで「ramsey/uuid」ライブラリを用いてUUIDを生成する方法
PHPでUUID(Universally Unique Identifier)を ...
-
-
phpQueryを利用したjQueryライクなスクレイピング方法
phpQueryというライブラリを使用することでjQueryのセレクタ指定のよう ...