PHPSTAN Reglas para detectar llamadas no permitidas y más, sin ejecutar el código.
Hay algunas funciones, métodos y constantes que no deben usarse en el código de producción. Un buen ejemplo es var_dump() , a menudo se usa para depurar los problemas rápidamente, pero debe eliminarse antes de cometer el código. Y a veces no lo es.
Otro ejemplo sería un registrador genérico. Supongamos que está utilizando una de las bibliotecas genéricas de registro, pero tiene su propio registrador que agregará más información o desinfectará datos, antes de llamar al registrador genérico. Su código no debe llamar al registrador genérico directamente, sino que debe usar su registrador personalizado.
Esta extensión PHPSTAN detectará dicho uso, si está configurado. Cabe señalar que esta extensión no es una forma de defenderse o detectar desarrolladores hostiles, ya que pueden ofuscar las llamadas, por ejemplo. Esta extensión está destinada a ser otro par de ojos, detectando sus propios errores, no tiene como objetivo detectar todo lo que está.
Las pruebas proporcionarán ejemplos lo que se detecta actualmente . Si no está cubierto por pruebas, podría estarlo, pero lo más probable es que no se detectará. *Test.php son las pruebas, comienzan con ellas, el código de prueba analizado está en SRC, las clases de prueba requeridas en libs.
No dude en presentar problemas o crear solicitudes de extracción si necesita detectar más llamadas.
Instale la extensión con el compositor:
composer require --dev spaze/phpstan-disallowed-calls
PHPSTAN, la herramienta de análisis estático PHP, es un requisito.
Si usa Phpstan/Extension-Installer, está todo configurado y puede omitir a la configuración.
Para la instalación manual, agregue esto a su phpstan.neon :
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon Puede comenzar con archivos de configuración agrupados.
La extensión también admite reglas personalizadas versátiles.
Digamos que ha no permitido foo() con reglas personalizadas. Pero desea volver a actualizarlo cuando se usa en su envoltorio personalizado, o cuando el primer parámetro es igual, o no, un valor especificado. La extensión ofrece múltiples formas de hacerlo:
La reasignación de atributos utiliza una configuración similar.
Use el generador proporcionado para generar un fragmento de configuración a partir de las directivas de configuración disable_functions & disable_classes de PHP.
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
Los nombres de las funciones, los nombres de los métodos, los nombres de clases, los espacios de nombres se combinan independientemente de su caso (la desaprobación print_r también encontrará llamadas print_R ), mientras que cualquier otra cosa como constantes, nombres de archivos, rutas no lo son.
También puede usar esta extensión sin ninguna otra regla de Phpstan. Esto puede ser útil si desea, por ejemplo, verificar un código de terceros para algunas llamadas o uso de algo.
Si desea contribuir (¡increíble, gracias!), Debe agregar/ejecutar pruebas para sus contribuciones. Primero instale las dependencias de devoluciones ejecutando composer install , luego ejecute las pruebas de phpunit con composer test , consulte scripts en composer.json . Las pruebas también se ejecutan en GitHub con acciones en cada empuje.
Puede solucionar problemas de estilo de codificación automáticamente ejecutando composer cs-fix .
Hay un proyecto similar con una configuración ligeramente diferente, creada casi al mismo tiempo (solo unos pocos días de diferencia): código prohibido PHPSTAN.