Unsplash の Ron McClenny による写真
多くの場合、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 サイトの他の関連記事を参照してください。