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

logSeveritystrictModescream のオプションの値は、エラーの水準の配列(たとえば [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