Naify\App\Profiler\HtmlRenderer クラス

プロファイラ HTML レンダラー — デバッグバー出力

チェックポイント記録をページ末尾にデバッグバーとして出力する。 shutdown 時に自動挿入され、閉じるボタンで非表示にできる。 通常は Profiler 側から間接的に使い、アプリ側から直接呼ぶのは 「明示的に HTML を埋め込みたい場面」に限られる。

使用例

$profiler = Naify::profiler();
$profiler->enable();
$profiler->checkpoint('boot:end');

echo HtmlRenderer::renderProfiler($profiler);

設計意図

バッジデータの保持は Profiler、描画の責務は HtmlRenderer に置く。 バッジより複雑な描画(パネル追加等)が将来必要になっても、 描画責務は HtmlRenderer 側に閉じる。

メソッド

メソッド説明
public static renderProfiler(Profiler $profiler): string Profiler 全体を tree 付きデバッグバーとして描画する
public static render(string $name, array $checkpoints, array $badges = '...'): string チェックポイント記録を HTML デバッグバーとしてレンダリングする
private static buildEnvBadges(): string OPcache / JIT の状態バッジを生成する
private static buildCustomBadges(array $badges): string アプリから追加されたカスタムバッジを生成する
バッジデータの保持は Profiler、描画の責務は HtmlRenderer に置く。 バッジより複雑な描画(パネル追加等)が将来必要になっても、 描画責務は HtmlRenderer 側に閉じる。
private static buildProfilerDomId(string $name): string profiler root / copy target 用の DOM id を組み立てる
private static buildProfilerClientPayload(string $name, array $checkpoints, array $badges, array $messages, array $tree, string $totalTime, float $totalTimeMs, string $peakMemory, int $peakMemoryBytes, string $phpVer, string $mode): array client-side renderer 用 payload を組み立てる
private static buildAgentSummary(string $name, string $mode, array $checkpoints, array $badges, array $messages, array $tree, float $totalTimeMs, int $peakMemoryBytes): array AI / tool 向けの要約面を組み立てる
private static collectSlowSections(array $nodes): array tree から section の timing 要点を抽出する
private static appendSlowSections(array $nodes, array $sections): void 集計先を共有して section を1回ずつ追加する
private static truncateInline(string $text, int $limit): string 長文を 1 行 preview 用に短くする
private static encodeProfilerPayload(array $payload): string payload を compact JSON へ変換する
private static buildCopyButton(string $copyText, string $extraClass = , ?string $targetId, string $label = Copy): string copy ボタンを組み立てる
private static buildHiddenCopyTarget(string $targetId, string $text): string copy ボタン用の hidden text target を組み立てる
private static buildInteractionScript(string $id, string $payloadId, string $bodyId): string copy / tree toggle 用の JS を返す
private static formatBytes(int $bytes): string バイト数を人間が読みやすい形式に変換する