ホームページ  >  記事  >  バックエンド開発  >  PHP のアップグレード: PHPStan で回帰をブロックする

PHP のアップグレード: PHPStan で回帰をブロックする

Barbara Streisand
Barbara Streisandオリジナル
2024-09-24 20:15:311006ブラウズ

PHP Upgrades: Block regressions with PHPStan
Unsplash の Ron McClenny による写真

多くの場合、PHPStan について考えるとき、一般的にタイプ カバレッジの改善を思い浮かべます。それは実際には、PHPStan ができることのほんの一部にすぎません。この記事では、これを使用してアップグレードの回帰を阻止する方法を学びます。

アップグレードの回帰とは何ですか?

アップグレードの回帰とは、アプリケーションに廃止​​したい機能がある場合のことです。これは、アプリケーション内のコード、またはインストールした依存関係内のコードである可能性があります。

アップグレードを実行しようとすると、一度にすべてを実行できないことがよくあります。代わりに、小さな段階的な変更を加える必要があります。これを行うのと同様に、他の開発者が非推奨のメソッドやプロパティを使用し続けることも望んでいません。この状況では、これらの新しいメソッド呼び出しなどは、アプリケーションのアップグレードの進行における退行となります。

PHPStan と非推奨ルール拡張機能のインストール

アップグレードのリグレッションへの対処を開始するには、最初のステップは PHPStan をインストールすることです (まだインストールしていない場合)。 Composer 経由でインストールできます:

composer require --dev phpstan/phpstan

次に、非推奨ルール拡張機能を追加します。これは、コードベース内の非推奨のメソッド、プロパティ、クラスの使用状況を追跡するのに特に役立ちます。

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

インストールしたら、phpstan.neon 設定ファイルに追加することで、非推奨ルールを使用するように PHPStan を設定できます。

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

この設定で PHPStan を実行すると、コードベース内の非推奨のメソッド、プロパティ、またはクラスにフラグが立てられます。非推奨のコードが使用されると通知されるため、これはアップグレードのリグレッションを防ぐための重要な手順です。その後、それらのインスタンスをリファクタリングして、アプリケーションをより新しい、サポートされている機能に確実に移行させることができます。

拒否された通話拡張機能をさらに活用する

非推奨ルール拡張機能は非推奨コードを検出しますが、Disallowed Calls 拡張機能は、コードベースで許可したくない特定の関数呼び出し、メソッド呼び出し、さらにはクラス全体をブロックする方法を提供します。これは、非推奨の警告がないコードなど、コードをよりきめ細かく制御する場合に特に役立ちます。

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

インストール後、phpstan.neon ファイルで設定する必要があります。以下は、特定のメソッド呼び出しまたは関数を禁止する方法の例です:

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'

この拡張機能は非常に包括的であり、ほとんどのシナリオをカバーできます。もちろん、うまくいかない状況もあるかもしれません。その場合、最善の方法は、独自のルールを作成する方法を学び始めることです。

これについては、別の記事で取り上げます。

結論

PHPStan を使用してアップグレードのリグレッションを検出することは、特に大規模な開発チームにおいて、アップグレード プロセスを容易にする賢明な方法です。 PHPStan を継続的統合セットアップに適用する

以上がPHP のアップグレード: PHPStan で回帰をブロックするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。