Para usar esta extensão, requer no compositor:
composer require --dev phpstan/phpstan-deprecation-rules
Se você também instalar o Phpstan/Extension-Installer, está tudo pronto!
Se você não quiser usar phpstan/extension-installer , inclua regras.neon na configuração do Phpstan do seu projeto:
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
Esta extensão emite avisos de depreciação no código, que utilizam propriedades/funções/métodos/classes que são anotados como @deprecated .
Caso você não possua o código que deseja ser considerado depreciado, use arquivos do phpstan stub para declarar depreciações para arquivos de fornecedores como:
/** @deprecated */
class ThirdPartyClass {}
O uso do código depreciado não é relatado no código que também é preterido:
/** @deprecated */
function doFoo (): void
{
// not reported:
anotherDeprecatedFunction ();
} Se você tiver uma maneira diferente de marcar o código que chama os símbolos depreciados de propósito e também não desejar que essas chamadas sejam relatadas, você pode escrever uma extensão implementando a interface DeprecatedScopeResolver .
Por exemplo, se você marcar seus testes de phpunit que testam o código depreciado com @group legacy , poderá implementar a extensão desta maneira:
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 ;
}
}E registre -o no seu arquivo de configuração:
services :
-
class : GroupLegacyScopeResolver
tags :
- phpstan.deprecations.deprecatedScopeResolverSaiba mais sobre o escopo, um conceito central para a implementação de extensões personalizadas do Phpstan.