Análisis estático de su código PHP usando PHPStan — Amit Merchant — Un blog sobre PHP, JavaScript y más

Análisis estático de su código PHP usando PHPStan — Amit Merchant — Un blog sobre PHP, JavaScript y más

La ventaja de los lenguajes tipificados estáticamente, como Java, C#, Go, Swift, etc., es que pueden ser analizados por el propio compilador. Esto significa que si está utilizando un lenguaje de tipo estático, puede detectar muchos errores en el momento de la compilación.

TypeScript es un gran ejemplo. Es un lenguaje de tipo estático que se compila en JavaScript. Y puede detectar muchos errores en el tiempo de compilación.

Este no es el caso de los lenguajes de escritura dinámica como PHP, Python, etc., donde solo puede detectar errores en tiempo de ejecución. No puede darse el lujo de detectar errores en tiempo de compilación.

Afortunadamente, existen herramientas que pueden ayudarlo a detectar errores de tiempo de compilación en PHP. Una de estas herramientas es PHPStan. Te daré una introducción a PHPStan en este artículo.

Índice
  1. ¿Qué es PHPStan?
  2. ¿Qué tipo de errores puede detectar PHPStan?
  3. Instalando PHPStan
  4. Ejecutar PHPStan
  5. Usar PHPStan con código VS
  6. En conclusión

¿Qué es PHPStan?

PHPStan es una herramienta de análisis estático para PHP que puede ayudarlo a encontrar errores en su código sin ejecutarlo. Puede detectar clases completas de errores incluso antes de escribir pruebas para el código y hacerlo lo suficientemente sólido como para ejecutarse en producción.

También puede encontrar errores que no son fáciles de detectar con solo mirar el código o puede ignorarlos involuntariamente como una condición if que siempre se evalúa como verdadera o una variable que nunca se usa.

Y eso significa que podrá enviar su código con una confianza que nunca antes había tenido.

PHPStan detecta estos errores principalmente en función de qué tan bien escribe su código o documenta su código usando PHPDoc que se ve así.

/**
 * @param Foo $param
 * @return Bar
 */
function foo($param) { }

¿Qué tipo de errores puede detectar PHPStan?

PHPStan puede detectar una amplia variedad de errores, desde identificar código muerto hasta averiguar si está utilizando una variable que no existe. O si está utilizando una variable que no es del tipo que espera o comprueba métodos desconocidos. La lista continúa.

Instalando PHPStan

Para instalar PHPStan, debe instalarlo como una dependencia de desarrollo mediante Composer. Puede hacer esto ejecutando el siguiente comando.

composer require --dev phpstan/phpstan

Ejecutar PHPStan

Una vez instalado, puede ejecutar PHPStan ejecutando el binario PHPStan en el vendor/bin directorio desde la raíz de su proyecto.

Deberá especificar al menos un directorio o archivo para escanear.

Entonces, si desea ejecutar PHPStan en el src directorio, puede hacerlo ejecutando el siguiente comando.

vendor/bin/phpstan analyse src

PHPStan tiene lo que se denominan niveles de conjunto de reglas. Estos son los niveles de exigencia en los que desea que se ejecute PHPStan. Por defecto, se ejecuta en el 0 nivel que es el nivel más suelto. Cuanto más alto sea el nivel, más estrictas serán las reglas.

Puede cambiar esto pasando el --level opción.

Por ejemplo, si desea ejecutar PHPStan en el nivel más estricto, puede hacerlo pasando el 9 O max nivel.

vendor/bin/phpstan analyse --level 9
#or
vendor/bin/phpstan analyse --level max

Si acaba de mojarse los pies con PHPStan, le recomiendo que comience con el 0 luego aumente gradualmente el nivel a medida que se sienta cómodo.

Así es como se ve la salida de PHPStan cuando lo ejecuto en 8 en uno de mis proyectos.

Ejecutar PHPStan

Como puede ver, encontró muchos errores en mi código en un formato tabular agradable. Incluso muestra el nombre del archivo y el número de línea donde ocurre el error. También le da el enlace a su documentación para resolver algunos de los errores.

Puede resolver la mayoría de los errores especificando correctamente las variables y los tipos de devolución. Para el resto de los errores, puede escribir los DocBlocks apropiados para resolverlos.

Usar PHPStan con código VS

Si está utilizando VS Code, puede instalar la extensión PHPStan de terceros que ejecutará PHPStan en segundo plano y le mostrará errores en el editor mientras escribe el código.

La extensión usará la configuración del phpstan.neon archivo en la raíz de su proyecto. Si no encuentra uno, utilizará la configuración predeterminada.

En conclusión

Si bien los IDE como PHPStorm (o PHP Intelephense en VS Code) ya pueden ayudarlo a detectar errores en su código hasta cierto punto, PHPStan puede ayudarlo a detectar errores que no son tan obvios y pueden ignorarse de manera segura.

También puede ayudarlo a detectar errores en su código incluso antes de escribir pruebas para él. Y es bueno tenerlo en tu arsenal.

Si quieres conocer otros artículos parecidos a Análisis estático de su código PHP usando PHPStan — Amit Merchant — Un blog sobre PHP, JavaScript y más puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas