Nette X-Ray
X-Rayは、あなたのプロジェクトが Nette の生態系をどう使っているかを正確に見せます。どのメソッド、どの Latte のフィルタ、どの設定のキーを実際に使っているかです。
Nette のどのメソッドをいちばんよく呼んでいるか、気になったことはありませんか。どの Latte のフィルタを実際に使っているか。あの古い設定のキーにまだ誰か触れているのか。X-Ray はあなたのコードを静的な解析で調べ、分かりやすい HTML の報告でそれに答えます。
解析されるもの
正規表現や当て推量ではなく、X-Ray は静的な解析を使います。継承をたどって型を解決し、宣言しているクラスを見分け、引数の使われ方を追います。その結果、あなたのプロジェクトが Nette とどうやり取りしているかの正確な姿が得られます。
| PHP と PHPT | Latte のテンプレート | NEON の設定 |
|---|---|---|
| メソッドと関数の呼び出し | タグと n:属性 | DI のサービスの使われ方 |
| 引数(位置、名前付き) | フィルタとその引数 | 拡張の登録 |
| 戻り値の使い方 | 関数と定数 | 区画の使われ方 |
| プロパティへのアクセス | 構文の変種 | 設定のキー |
| クラスの継承とトレイト | ||
| メソッドの上書き |
インストール
Composer で開発用の依存関係として入れます。
composer require --dev nette/xray
PHP 8.2 以上が要り、PHPStan 2.1 の上で動きます。Nette、Latte、Tracy、Dibi、Texy を使うどのプロジェクトでも働きます。
使い方
ソースのディレクトリを指すだけです。
vendor/bin/xray app/ src/
すぐにブラウザで開ける対話的な HTML
の報告(xray-report.html)と、機械で読めるデータ(xray-report.json)が手に入ります。
Nette X-Ray
===========
Scanning PHP files ... 142/142 done
Scanning NEON files ... 4/4 done
Scanning Latte files ... 87/87 done
Reports saved to:
xray-report.json
xray-report.html
設定
振る舞いを変えるには、プロジェクトの根に nette-xray.neon のファイルを作ります。
# 既定の解析のパス(CLI の引数がないときに使われます)
paths:
- app
- src
# 除くディレクトリの追加(vendor、temp、node_modules、.git は既定で除かれます)
excludeDirs:
- generated
# 尋ねずに自動で送信します
upload: false