Tracy の設定
以下の例では、次のクラスの別名が定義されているものとします。
use Tracy\Debugger;
エラーの記録
$logger = Debugger::getLogger();
// エラーの通知を送るメールアドレス
$logger->email = 'dev@example.com'; // (string|string[]) 既定では未設定
// 送信者のメールアドレス
$logger->fromEmail = 'me@example.com'; // (string) 既定では未設定
// メールを送る手続き
$logger->mailer = /* ... */; // (callable) 既定は mail() での送信
// 次のメールを送るまでの最短の間隔
$logger->emailSnooze = /* ... */; // (string) 既定は '2 days'
// どのエラーの水準で BlueScreen も記録しますか
Debugger::$logSeverity = E_WARNING | E_NOTICE; // 既定は 0(どの水準でも記録しない)
dump() の振る舞い
// 文字列の長さの上限
Debugger::$maxLength = 150; // (int) 既定は Tracy のバージョンによります
// 入れ子の深さの上限
Debugger::$maxDepth = 10; // (int) 既定は Tracy のバージョンによります
// 表示される配列やオブジェクトの要素の数の上限
Debugger::$maxItems = 100; // (int) 既定は Tracy のバージョンによります
// これらのキーの値を隠します(Tracy 2.8 以降)
Debugger::$keysToHide = ['password', /* ... */]; // (string[]) 既定は []
// 見た目のテーマ(Tracy 2.8 以降)
Debugger::$dumpTheme = 'dark'; // (light|dark) 既定は 'light'
// dump() が呼ばれた場所を表示しますか
Debugger::$showLocation = /* ... */; // (bool) 既定は Tracy のバージョンによります
そのほか
// 開発モードで、notice や warning の種類のエラーを BlueScreen として表示します
Debugger::$strictMode = /* ... */; // (bool|int) 既定は false。特定のエラーの水準を選べます(たとえば E_USER_DEPRECATED | E_DEPRECATED)
// 抑制された(@)エラーのメッセージを表示しますか
Debugger::$scream = /* ... */; // (bool|int) 既定は false。バージョン 2.9 以降は特定のエラーの水準を選べます(たとえば E_USER_DEPRECATED | E_DEPRECATED)
// エディタで開くためのリンクの書式
Debugger::$editor = /* ... */; // (string|null) 既定は 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'
// エラー 500 の独自のページのテンプレートへのパス
Debugger::$errorTemplate = /* ... */; // (string) 既定では未設定
// Tracy Bar を表示しますか
Debugger::$showBar = /* ... */; // (bool) 既定は true
// 記録された BlueScreen をブラウザで開くコマンド(たとえば CLI で)
Debugger::$browser = /* ... */; // (string) 既定では未設定
// 致命的なエラーや捕まえられなかった例外のあとに呼ばれる関数の配列
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };
Debugger::$editorMapping = [
// もとのパス => 新しいパス
'/var/www/html' => '/data/web',
'/home/web' => '/srv/html',
];
Nette Framework
Nette Framework を使っているなら、設定ファイルで Tracy を設定し、Tracy Bar に新しいパネルを足せます。設定ではパラメータを指定したり、Tracy Bar に新しいパネルを足したりできます。これらの設定は DI コンテナが作られたあとにはじめて当てはまるので、それより前に起きたエラーには反映されません。
エラーの記録の設定です。
tracy:
# エラーの通知を送るメールアドレス
email: dev@example.com # (string|string[]) 既定では未設定
# 送信者のメールアドレス
fromEmail: robot@example.com # (string) 既定では未設定
# メールの送信を控える時間(Tracy 2.8.8 以降)
emailSnooze: ... # (string) 既定は '2 days'
# メールの送信に Nette の mailer を使いますか(Tracy 2.5 以降)
netteMailer: ... # (bool) 既定は true
# どのエラーの水準で BlueScreen も記録しますか
logSeverity: [E_WARNING, E_NOTICE] # 既定は 0
dump() 関数の設定です。
tracy:
# 文字列の長さの上限
maxLength: 150 # (int) 既定は Tracy のバージョンによります
# 入れ子の深さの上限
maxDepth: 10 # (int) 既定は Tracy のバージョンによります
# 表示される配列やオブジェクトの要素の数の上限
maxItems: 100 # (int) 既定は Tracy のバージョンによります
# これらのキーの値を隠します(Tracy 2.8 以降)
keysToHide: [password, pass] # (string[]) 既定は []
# 見た目のテーマ(Tracy 2.8 以降)
dumpTheme: dark # (light|dark) 既定は 'light'
# dump() が呼ばれた場所を表示しますか
showLocation: ... # (bool) 既定は Tracy のバージョンによります
Tracy の拡張の導入です。
tracy:
# Tracy Bar にパネルを足します
bar:
- Nette\Bridges\DITracy\ContainerPanel
- IncludePanel
- XDebugHelper('myIdeKey')
- MyPanel(@MyService)
# BlueScreen にパネルを足します
blueScreen:
- DoctrinePanel::renderException
そのほかのオプションです。
tracy:
# 開発モードで、notice や warning の種類のエラーを BlueScreen として表示します
strictMode: ... # 既定は false
# 抑制された(@)エラーのメッセージを表示しますか
scream: ... # 既定は false
# エディタで開くためのリンクの書式
editor: ... # (string) 既定は 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'
# エラー 500 の独自のページのテンプレートへのパス
errorTemplate: ... # (string) 既定では未設定
# Tracy Bar を表示しますか
showBar: ... # (bool) 既定は true
# 記録された BlueScreen をブラウザで開くコマンド(たとえば CLI で)
browser: ... # (string) 既定では未設定
editorMapping:
# もとのパス: 新しいパス
/var/www/html: /data/web
/home/web: /srv/html
logSeverity、strictMode、scream
のオプションの値は、エラーの水準の配列(たとえば [E_WARNING, E_NOTICE])としても、PHP
で使う式(たとえば E_ALL & ~E_NOTICE)としても書けます。
DI のサービス
DI コンテナには次のサービスが足されます。
| 名前 | 型 | 説明 |
|---|---|---|
tracy.logger |
Tracy\ILogger | ロガー |
tracy.blueScreen |
Tracy\BlueScreen | BlueScreen |
tracy.bar |
Tracy\Bar | Tracy Bar |