Nette X-Ray

X-Ray pokazuje Ci dokładnie, jak Twój projekt używa ekosystemu Nette: których metod, filtrów Latte i kluczy konfiguracyjnych faktycznie używasz.

Zastanawiałeś się kiedyś, które metody Nette wywołujesz najczęściej? Których filtrów Latte faktycznie używasz? Czy ktoś jeszcze rusza ten stary klucz konfiguracyjny? X-Ray skanuje Twój kod analizą statyczną i odpowiada na to przejrzystym raportem HTML.

Co jest analizowane

Zamiast regexów albo zgadywania X-Ray używa analizy statycznej: rozwiązuje typy przez dziedziczenie, wykrywa klasy deklarujące i śledzi wzorce argumentów. Wynikiem jest dokładny obraz tego, jak Twój projekt współpracuje z Nette.

PHP i PHPT Szablony Latte Konfiguracja NEON
wywołania metod i funkcji tagi i n:atrybuty wzorce usług DI
argumenty (pozycyjne, nazwane) filtry i ich argumenty rejestracja rozszerzeń
użycie wartości zwracanych funkcje i stałe użycie sekcji
dostęp do właściwości warianty składni klucze konfiguracyjne
dziedziczenie klas i traity    
nadpisania metod    

Instalacja

Zainstaluj go przez Composera jako zależność deweloperską:

composer require --dev nette/xray

Wymaga PHP 8.2 albo wyższego i działa na PHPStan 2.1. Współpracuje z dowolnym projektem używającym Nette, Latte, Tracy, Dibi albo Texy.

Użycie

Wskaż mu swoje katalogi źródłowe:

vendor/bin/xray app/ src/

W kilka chwil dostaniesz interaktywny raport HTML (xray-report.html), który możesz otworzyć w przeglądarce, plus dane czytelne maszynowo (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

Konfiguracja

Utwórz w katalogu głównym projektu plik nette-xray.neon, żeby dostosować zachowanie:

# Domyślne ścieżki analizy (używane, gdy nie podano argumentów CLI)
paths:
	- app
	- src

# Dodatkowe katalogi do wykluczenia (vendor, temp, node_modules, .git są wykluczone domyślnie)
excludeDirs:
	- generated

# Automatyczne wysyłanie bez pytania
upload: false