Nette X-Ray

X-Ray le muestra exactamente cómo usa su proyecto el ecosistema de Nette: qué métodos, filtros de Latte y claves de configuración utiliza realmente.

¿Se ha preguntado alguna vez qué métodos de Nette llama más? ¿Qué filtros de Latte usa de verdad? ¿Si alguien toca todavía aquella clave de configuración antigua? X-Ray analiza su código con análisis estático y le responde con un informe HTML claro.

Qué se analiza

En lugar de expresiones regulares o conjeturas, X-Ray usa análisis estático: resuelve los tipos a través de la herencia, detecta las clases declarantes y sigue los patrones de argumentos. El resultado es una imagen precisa de cómo interactúa su proyecto con Nette.

PHP y PHPT Plantillas de Latte Configuración NEON
llamadas a métodos y funciones etiquetas y n:atributos patrones de servicios DI
argumentos (posicionales, con nombre) filtros y sus argumentos registro de extensiones
uso del valor de retorno funciones y constantes uso de secciones
acceso a propiedades variantes de sintaxis claves de configuración
herencia de clases y traits    
sobrescritura de métodos    

Instalación

Instálelo con Composer como dependencia de desarrollo:

composer require --dev nette/xray

Requiere PHP 8.2 o superior y funciona sobre PHPStan 2.1. Funciona con cualquier proyecto que use Nette, Latte, Tracy, Dibi o Texy.

Uso

Apúntelo a sus directorios de código fuente:

vendor/bin/xray app/ src/

En unos instantes obtiene un informe HTML interactivo (xray-report.html) que puede abrir en el navegador, además de datos legibles por máquina (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

Configuración

Cree un archivo nette-xray.neon en la raíz de su proyecto para personalizar el comportamiento:

# Rutas de análisis predeterminadas (se usan cuando no se dan argumentos en la línea de comandos)
paths:
	- app
	- src

# Directorios adicionales que excluir (vendor, temp, node_modules y .git se excluyen de forma predeterminada)
excludeDirs:
	- generated

# Enviar automáticamente sin preguntar
upload: false