Nette X-Ray
***********
.[perex]
[X-Ray |https://github.com/nette/xray] 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 přes 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:
```shell
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:
```shell
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:
```neon
# 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
```
/--comment
Pomozte vývoji Nette
====================
Po analýze můžete report dobrovolně odeslat a pomoct tak směřovat vývoj frameworku – reálná data o používání jsou spolehlivější než ankety. Odesílají se jen agregovaná čísla: kolikrát se které API zavolá a jaké vzory používáte. Žádný kód, žádné cesty k souborům, žádné hodnoty proměnných. Data se odešlou jen tehdy, když to výslovně potvrdíte, a JSON report se vždy nejdřív uloží lokálně, takže si ho můžete v klidu prohlédnout.
\--
{{maintitle: Nette X-Ray: jak váš projekt využívá Nette}}
{{description: X-Ray vám ukáže, jak přesně váš projekt využívá ekosystém Nette: které metody, Latte filtry a konfigurační klíče doopravdy používáte.}}
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 přes 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