Usar PHPStan para evitar que se nos cuelen funciones de depuración
Vamos por partes, cuando trabajamos con un editor de código en PHP deberíamos usar XDebug para depurar código, pero no siempre es así y a veces usamos funciones de depuración, en Drupal tenemos funciones propias `ddl()` del módulo devel debug log, `dpm`, o las funciones nativas de php `var_dump` o `print_r`, etc...
Si se nos cuela alguna de estas funciones se puede liar, desde errores al invocar una función que no existe en producción* hasta que salga todo el output de depuración a un cliente.
Para evitar este tipo de errores podemos usar PHPStan, en este caso y para ello necesitamos este complemento de PHPStan: https://github.com/spaze/phpstan-disallowed-calls
Añadimos esta configuración en archivo php.neon
parameters:
disallowedMethodCalls:
-
method: 'PotentiallyDangerous\Logger::log()'
message: 'use our own logger instead'
-
method: 'Redis::connect()'
message: 'use our own Redis instead'
disallowedStaticCalls:
-
method: 'PotentiallyDangerous\Debugger::log()'
message: 'use our own logger instead'
disallowedFunctionCalls:
-
function: 'var_dump()'
message: 'use logger instead'
-
function: 'print_r()'
message: 'use logger instead'
disallowedConstants:
-
constant: 'DATE_ISO8601'
message: 'use DATE_ATOM instead'
-
class: 'DateTimeInterface'
constant: 'ISO8601'
message: 'use DateTimeInterface::ATOM instead'
disallowedNamespaces:
-
namespace: 'Symfony\Component\HttpFoundation\RequestStack'
message: 'pass Request via controller instead'
allowIn:
- tests/*
-
namespace: 'Assert\*'
message: 'use Webmozart\Assert instead'
Disfrutadlo.
* Composer permite instalar dependencias en los entornos de desarrollo y que no se instalen en los entornos de producción `composer install XXX/XXXX --dev`