Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Upgrades: Blockieren Sie Regressionen mit PHPStan

PHP-Upgrades: Blockieren Sie Regressionen mit PHPStan

Barbara Streisand
Barbara StreisandOriginal
2024-09-24 20:15:31900Durchsuche

PHP Upgrades: Block regressions with PHPStan
Foto von Ron McClenny auf Unsplash

Wenn Leute an PHPStan denken, denken sie oft an die Verbesserung der Typabdeckung. Das ist wirklich nur ein kleiner Teil dessen, wozu PHPStan fähig ist. In diesem Artikel erfahren Sie, wie Sie damit Upgrade-Regressionen stoppen können.

Was ist eine Upgrade-Regression?

Eine Upgrade-Regression liegt vor, wenn Ihre Anwendung über Funktionen verfügt, von denen Sie abrücken möchten. Dies kann Code innerhalb Ihrer Anwendung oder Code innerhalb einer von Ihnen installierten Abhängigkeit sein.

Wenn wir versuchen, Upgrades durchzuführen, können wir oft nicht alles auf einmal erledigen. Stattdessen müssen wir kleine inkrementelle Änderungen vornehmen. Gleichzeitig möchten wir nicht, dass andere Entwickler weiterhin veraltete Methoden und Eigenschaften verwenden. In dieser Situation sind diese neuen Methodenaufrufe usw. Rückschritte in Ihrem Fortschritt beim Upgrade Ihrer Anwendung.

Installation von PHPStan und der Deprecation Rules-Erweiterung

Um mit der Bewältigung von Upgrade-Regressionen zu beginnen, besteht der erste Schritt darin, PHPStan zu installieren, falls Sie dies noch nicht getan haben. Sie können es über Composer installieren:

composer require --dev phpstan/phpstan

Als nächstes möchten Sie die Erweiterung „Deprecation Rules“ hinzufügen, die speziell dabei hilft, die Verwendung veralteter Methoden, Eigenschaften und Klassen in Ihrer Codebasis zu verfolgen:

composer require --dev phpstan/phpstan-deprecation-rules

Nach der Installation können Sie PHPStan für die Verwendung der Veraltungsregeln konfigurieren, indem Sie es zu Ihrer phpstan.neon-Konfigurationsdatei hinzufügen:

includes:
    - vendor/phpstan/phpstan-deprecation-rules/rules.neon

Wenn Sie PHPStan mit diesem Setup ausführen, werden jetzt alle veralteten Methoden, Eigenschaften oder Klassen in Ihrer Codebasis gekennzeichnet. Dies ist ein wesentlicher Schritt zur Verhinderung von Upgrade-Regressionen, da Sie benachrichtigt werden, wenn veralteter Code verwendet wird. Anschließend können Sie diese Instanzen umgestalten, um sicherzustellen, dass Ihre Anwendung auf neuere, unterstützte Funktionen umsteigt.

Gehen Sie mit der Erweiterung „Unzulässige Anrufe“ noch weiter

Während die Deprecation Rules-Erweiterung veralteten Code abfängt, bietet die Erweiterung Disallowed Calls eine Möglichkeit, bestimmte Funktionsaufrufe, Methodenaufrufe oder sogar ganze Klassen zu blockieren, die Sie in Ihrer Codebasis nicht mehr zulassen möchten. Dies ist besonders nützlich für eine detailliertere Kontrolle Ihres Codes, z. B. Code, für den es keine Verfallswarnung gibt.

composer require --dev spaze/phpstan-disallowed-calls

Nach der Installation müssen Sie es in Ihrer phpstan.neon-Datei konfigurieren. Hier ist ein Beispiel dafür, wie Sie bestimmte Methodenaufrufe oder Funktionen verbieten können:

includes:
    - vendor/phpstan/phpstan-deprecation-rules/rules.neon
    # add the extension
    - vendor/spaze/phpstan-disallowed-calls/extension.neon

parameters:
    # You can see more example at https://github.com/spaze/phpstan-disallowed-calls/blob/main/docs/custom-rules.md
    disallowedMethodCalls:
        -
            method: 'PotentiallyDangerous\Logger::log()' # `function` is an alias of `method`
            message: 'use our own logger instead'
            errorTip: 'see https://our-docs.example/logging on how logging should be used'Begin writing your own rules
    disallowedFunctionCalls:
        -
            function: 'var_dump()' # `method` is an alias of `function`
            message: 'use logger instead'

Diese Erweiterung ist ziemlich umfassend, sodass Sie die meisten Szenarien abdecken können. Natürlich kann es Situationen geben, die nicht funktionieren, und dafür ist es am besten, zu lernen, eigene Regeln zu schreiben.

Darauf werden wir in einem anderen Artikel näher eingehen.

Abschluss

Die Verwendung von PHPStan zum Abfangen von Upgrade-Regressionen ist eine clevere Möglichkeit, den Upgrade-Prozess zu vereinfachen, insbesondere in großen Entwicklungsteams. Anwenden von PHPStan auf Ihr Continuous-Integration-Setup

Das obige ist der detaillierte Inhalt vonPHP-Upgrades: Blockieren Sie Regressionen mit PHPStan. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn