Nette X-Ray
***********
.[perex]
[X-Ray |https://github.com/nette/xray] 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ą:
```shell
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:
```shell
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:
```neon
# 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
```
/--comment
Pomóż ulepszać Nette
====================
Po analizie możesz opcjonalnie wysłać raport, żeby pomóc wyznaczać kierunek rozwoju frameworku – rzeczywiste dane o użyciu są znacznie bardziej wiarygodne niż ankiety. Wysyłane są tylko zagregowane liczby: ile razy wywoływane jest każde API i których wzorców używasz. Żadnego kodu, żadnych ścieżek plików, żadnych wartości zmiennych. Dane wysyłane są tylko wtedy, gdy jawnie to potwierdzisz, a raport JSON jest zawsze najpierw zapisywany lokalnie, żebyś mógł przejrzeć go w spokoju.
\--
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