Pour utiliser cette extension, nécessitez-le dans le compositeur:
composer require --dev phpstan/phpstan-deprecation-rules
Si vous installez également PhpStan / Extension-Installer, vous êtes tous réglés!
Si vous ne souhaitez pas utiliser phpstan/extension-installer , incluez des règles.neon dans la configuration phpstan de votre projet:
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
Cette extension émet des avertissements de dépréciation sur le code, qui utilise des propriétés / fonctions / méthodes / classes qui sont annotées comme @deprecated .
Dans le cas où vous ne possédez pas le code que vous souhaitez être considéré comme obsolète, utilisez des fichiers Stub PhpStan pour déclarer les dépréciations pour les fichiers des fournisseurs comme:
/** @deprecated */
class ThirdPartyClass {}
L'utilisation du code obsolète n'est pas signalée dans le code qui est également obsolète:
/** @deprecated */
function doFoo (): void
{
// not reported:
anotherDeprecatedFunction ();
} Si vous avez une manière différente de marquer du code qui appelle à des fin de symboles obsolètes et que vous ne voulez pas non plus que ces appels soient signalés, vous pouvez écrire une extension en implémentant l'interface DeprecatedScopeResolver .
Par exemple, si vous marquez vos tests PHPUnit qui testent le code déprécié avec @group legacy , vous pouvez implémenter l'extension de cette façon:
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 ;
}
}Et enregistrez-le dans votre fichier de configuration:
services :
-
class : GroupLegacyScopeResolver
tags :
- phpstan.deprecations.deprecatedScopeResolverEn savoir plus sur Scope, un concept de base pour la mise en œuvre d'extensions de phpstan personnalisées.