Nette X-Ray

X-Ray vám ukáže, jak přesně váš projekt využívá ekosystém Nette: které metody, Latte filtry i konfigurační klíče doopravdy používáte.

Přemýšleli jste někdy, které Nette metody voláte nejčastěji? Které Latte filtry vlastně používáte? Sahá ještě někdo na ten starý konfigurační klíč? X-Ray prohledá váš kód statickou analýzou a odpoví vám přehledným HTML reportem.

Co se analyzuje

Místo regulárních výrazů a odhadů používá X-Ray statickou analýzu: rozliší typy skrz dědičnost, pozná deklarující třídy a sleduje vzory argumentů. Výsledkem je přesný obrázek o tom, jak váš projekt interaguje s Nette.

PHP a PHPT Latte šablony NEON konfigurace
volání metod a funkcí značky a n:atributy vzory DI služeb
argumenty (poziční, pojmenované) filtry a jejich argumenty registrace rozšíření
použití návratových hodnot funkce a konstanty použité sekce
přístup k properties varianty syntaxe konfigurační klíče
dědičnost tříd a traity    
přepisy metod    

Instalace

Nainstalujte ho přes Composer jako vývojovou závislost:

composer require --dev nette/xray

Vyžaduje PHP 8.2 nebo vyšší a běží na PHPStanu 2.1. Funguje s libovolným projektem, který používá Nette, Latte, Tracy, Dibi nebo Texy.

Použití

Spusťte ho nad svými zdrojovými adresáři:

vendor/bin/xray app/ src/

Během chvíle získáte interaktivní HTML report (xray-report.html), který stačí otevřít v prohlížeči, a strojově čitelná data (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

Konfigurace

Chování upravíte souborem nette-xray.neon v kořeni projektu:

# Výchozí cesty k analýze (použijí se, když neuvedete argumenty na příkazové řádce)
paths:
	- app
	- src

# Další adresáře k vyloučení (vendor, temp, node_modules, .git jsou vyloučeny automaticky)
excludeDirs:
	- generated

# Automatické odeslání bez ptaní
upload: false