Nette X-Ray
X-Ray vous montre exactement comment votre projet utilise l'écosystème Nette : quelles méthodes, quels filtres Latte et quelles clés de configuration vous employez réellement.
Vous êtes-vous déjà demandé quelles méthodes de Nette vous appelez le plus souvent ? Quels filtres Latte vous utilisez vraiment ? Si quelqu'un touche encore à cette vieille clé de configuration ? X-Ray parcourt votre code par analyse statique et vous répond avec un rapport HTML clair.
Ce qui est analysé
Au lieu d'expressions régulières ou de suppositions, X-Ray s'appuie sur l'analyse statique : il résout les types à travers l'héritage, détecte les classes déclarantes et suit les schémas d'arguments. Le résultat est une image fidèle de la façon dont votre projet dialogue avec Nette.
| PHP et PHPT | Templates Latte | Configuration NEON |
|---|---|---|
| appels de méthodes et de fonctions | tags et n:attributs | schémas des services DI |
| arguments (positionnels, nommés) | filtres et leurs arguments | enregistrement des extensions |
| usage de la valeur de retour | fonctions et constantes | usage des sections |
| accès aux propriétés | variantes de syntaxe | clés de configuration |
| héritage de classes et traits | ||
| redéfinitions de méthodes |
Installation
Installez-le via Composer comme dépendance de développement :
composer require --dev nette/xray
Il nécessite PHP 8.2 ou supérieur et fonctionne sur PHPStan 2.1. Il s'utilise avec n'importe quel projet reposant sur Nette, Latte, Tracy, Dibi ou Texy.
Utilisation
Indiquez-lui vos répertoires sources :
vendor/bin/xray app/ src/
En un instant, vous obtenez un rapport HTML interactif (xray-report.html) que vous pouvez ouvrir dans votre
navigateur, ainsi que des données exploitables par la machine (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
Configuration
Créez un fichier nette-xray.neon à la racine de votre projet pour en personnaliser le comportement :
# Default analysis paths (used when no CLI arguments are given)
paths:
- app
- src
# Additional directories to exclude (vendor, temp, node_modules, .git are excluded by default)
excludeDirs:
- generated
# Auto-upload without asking
upload: false