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`