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