Para usar esta extensión, requiere en compositor:
composer require --dev phpstan/phpstan-deprecation-rules
Si también instala PHPSTAN/Extension-Installer, ¡está listo!
Si no desea utilizar phpstan/extension-installer , incluya reglas.
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
Esta extensión emite advertencias de deprecación en el código, que utiliza propiedades/funciones/métodos/clases que se anotan como @deprecated .
En caso de que no sea dueño del código que desea considerarse en desuso, use archivos PHPSTAN Stub para declarar deprecaciones para archivos de proveedores como:
/** @deprecated */
class ThirdPartyClass {}
El uso del código desapercibido no se informa en el código que también está en desuso:
/** @deprecated */
function doFoo (): void
{
// not reported:
anotherDeprecatedFunction ();
} Si tiene una forma diferente de marcar un código que llama a los símbolos desaprobados a propósito y tampoco desea que se informen estas llamadas, puede escribir una extensión implementando la interfaz de DeprecatedScopeResolver .
Por ejemplo, si marca sus pruebas de PhPunit que prueban el código desaprobado con @group legacy , puede implementar la extensión de esta manera:
class GroupLegacyScopeResolver implements DeprecatedScopeResolver
{
public function isScopeDeprecated ( Scope $ scope ): bool
{
$ function = $ scope -> getFunction ();
return $ function !== null
&& $ function -> getDocComment () !== null
&& strpos ( $ function -> getDocComment (), ' @group legacy ' ) !== false ;
}
}Y registrarlo en su archivo de configuración:
services :
-
class : GroupLegacyScopeResolver
tags :
- phpstan.deprecations.deprecatedScopeResolverObtenga más información sobre el alcance, un concepto central para implementar extensiones de Phpstan personalizadas.