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.
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.
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.
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.
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!