Nette X-Ray
X-Ray vi mostra esattamente come il vostro progetto usa l'ecosistema Nette: quali metodi, filtri Latte e chiavi di configurazione usate davvero.
Vi siete mai chiesti quali metodi di Nette chiamate più spesso? Quali filtri Latte usate davvero? Se qualcuno tocca ancora quella vecchia chiave di configurazione? X-Ray analizza il vostro codice con l'analisi statica e vi risponde con un chiaro report HTML.
Che cosa viene analizzato
Invece di regex o supposizioni, X-Ray usa l'analisi statica: risolve i tipi attraverso l'ereditarietà, rileva le classi dichiaranti e traccia gli schemi degli argomenti. Il risultato è un quadro accurato di come il vostro progetto interagisce con Nette.
| PHP e PHPT | Template Latte | Configurazione NEON |
|---|---|---|
| chiamate di metodi e funzioni | tag e n:attributi | schemi dei servizi DI |
| argomenti (posizionali, con nome) | filtri e loro argomenti | registrazione delle estensioni |
| uso del valore di ritorno | funzioni e costanti | uso delle sezioni |
| accesso alle proprietà | varianti di sintassi | chiavi di configurazione |
| ereditarietà delle classi e trait | ||
| ridefinizioni dei metodi |
Installazione
Installatelo con Composer come dipendenza di sviluppo:
composer require --dev nette/xray
Richiede PHP 8.2 o superiore e gira su PHPStan 2.1. Funziona con qualsiasi progetto che usa Nette, Latte, Tracy, Dibi o Texy.
Uso
Puntatelo sulle vostre directory sorgente:
vendor/bin/xray app/ src/
In pochi istanti ottenete un report HTML interattivo (xray-report.html) che potete aprire nel browser, oltre a
dati leggibili dalle macchine (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
Configurazione
Create nella radice del progetto un file nette-xray.neon per personalizzare il comportamento:
# percorsi di analisi predefiniti (usati quando non si danno argomenti da riga di comando)
paths:
- app
- src
# altre directory da escludere (vendor, temp, node_modules, .git sono escluse per impostazione predefinita)
excludeDirs:
- generated
# invio automatico senza chiedere
upload: false