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