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

PHP-Upgrades: Blockieren Sie Regressionen mit PHPStan

Sep 24, 2024 pm 08:15 PM

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
Nach dem Login kopieren

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 dem Login kopieren

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
Nach dem Login kopieren

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 dem Login kopieren

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'
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Einführung in die Instagram -API Einführung in die Instagram -API Mar 02, 2025 am 09:32 AM

Einführung in die Instagram -API

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Ankündigung von 2025 PHP Situation Survey Ankündigung von 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Ankündigung von 2025 PHP Situation Survey

See all articles