Nette X-Ray
X-Ray zeigt Ihnen genau, wie Ihr Projekt das Nette-Ökosystem nutzt: welche Methoden, Latte-Filter und Konfigurationsschlüssel Sie tatsächlich verwenden.
Haben Sie sich schon einmal gefragt, welche Nette-Methoden Sie am häufigsten aufrufen? Welche Latte-Filter Sie wirklich verwenden? Ob überhaupt noch jemand jenen alten Konfigurationsschlüssel anfasst? X-Ray durchsucht Ihren Code mit statischer Analyse und beantwortet das mit einem übersichtlichen HTML-Bericht.
Was analysiert wird
Statt Regex oder Raterei verwendet X-Ray statische Analyse: Es löst Typen über die Vererbung auf, erkennt deklarierende Klassen und verfolgt Argumentmuster. Das Ergebnis ist ein genaues Bild davon, wie Ihr Projekt mit Nette zusammenspielt.
| PHP und PHPT | Latte-Templates | NEON-Konfiguration |
|---|---|---|
| Methoden- und Funktionsaufrufe | Tags und n:Attribute | Muster der DI-Services |
| Argumente (positionell, benannt) | Filter und ihre Argumente | Registrierung von Extensions |
| Verwendung des Rückgabewerts | Funktionen und Konstanten | Verwendung von Abschnitten |
| Zugriff auf Properties | Syntaxvarianten | Konfigurationsschlüssel |
| Klassenvererbung und Traits | ||
| Überschreiben von Methoden |
Installation
Installieren Sie es mit Composer als Dev-Abhängigkeit:
composer require --dev nette/xray
Es benötigt PHP 8.2 oder höher und läuft mit PHPStan 2.1. Es funktioniert mit jedem Projekt, das Nette, Latte, Tracy, Dibi oder Texy verwendet.
Verwendung
Richten Sie es auf Ihre Quellverzeichnisse:
vendor/bin/xray app/ src/
Innerhalb kurzer Zeit erhalten Sie einen interaktiven HTML-Bericht (xray-report.html), den Sie im Browser öffnen
können, sowie maschinenlesbare Daten (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
Konfiguration
Legen Sie im Wurzelverzeichnis Ihres Projekts eine Datei nette-xray.neon an, um das Verhalten anzupassen:
# Standardpfade für die Analyse (werden verwendet, wenn keine CLI-Argumente angegeben sind)
paths:
- app
- src
# weitere auszuschließende Verzeichnisse (vendor, temp, node_modules, .git sind standardmäßig ausgeschlossen)
excludeDirs:
- generated
# ohne Nachfrage automatisch hochladen
upload: false