Um diese Erweiterung zu verwenden, benötigen Sie sie in Komponist:
composer require --dev phpstan/phpstan-deprecation-rules
Wenn Sie auch Phpstan/Extension-Installer installieren, sind Sie alle festgelegt!
Wenn Sie phpstan/extension-installer nicht verwenden möchten, geben Sie Regeln ein. Neon in der Phpstan-Konfiguration Ihres Projekts:
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
Diese Erweiterung gibt Abschaltwarnungen auf Code aus, die Eigenschaften/Funktionen/Methoden/Klassen verwendet, die als @deprecated kommentiert werden.
Wenn Sie den Code, den Sie als veraltet angesehen werden möchten, nicht besitzen, verwenden Sie Phpstan -Stub -Dateien, um Abschreibungen für Lieferantendateien zu deklarieren, wie:
/** @deprecated */
class ThirdPartyClass {}
Die Verwendung von veralteten Code wird nicht in Code gemeldet, der ebenfalls veraltet ist:
/** @deprecated */
function doFoo (): void
{
// not reported:
anotherDeprecatedFunction ();
} Wenn Sie einen anderen Weg zum Kennzeichnungscode haben, der absichtlich veraltete Symbole aufruft, und Sie nicht möchten, dass diese Anrufe gemeldet werden, können Sie eine Erweiterung schreiben, indem Sie die DeprecatedScopeResolver -Schnittstelle implementieren.
Wenn Sie beispielsweise Ihre Phpunit -Tests markieren, die veralteten Code mit @group legacy testen, können Sie die Erweiterung auf diese Weise implementieren:
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 ;
}
}Und registrieren Sie es in Ihrer Konfigurationsdatei:
services :
-
class : GroupLegacyScopeResolver
tags :
- phpstan.deprecations.deprecatedScopeResolverErfahren Sie mehr über Scope, ein Kernkonzept für die Implementierung benutzerdefinierter Phpstan -Erweiterungen.