コードを実行せずに、許可されていない呼び出しなどを検出するためのphpstanルール。
生産コードで使用してはならない機能、方法、定数がいくつかあります。良い例の1つはvar_dump()です。多くの場合、問題を迅速にデバッグするために使用されますが、コードをコミットする前に削除する必要があります。そして時々そうではありません。
別の例は、一般的なロガーです。一般的なロギングライブラリのいずれかを使用しているが、一般的なロガーを呼び出す前に、いくつかの情報を追加するか、データを消毒する独自のロガーがあるとしましょう。コードは一般的なロガーを直接呼び出すべきではありませんが、代わりにカスタムロガーを使用する必要があります。
このPHPSTAN拡張機能は、構成されている場合、そのような使用法を検出します。たとえば、この拡張機能は、敵対的な開発者を防御したり検出したりする方法ではないことに注意する必要があります。この拡張機能は、あなた自身の間違いを検出する別の目の目になることを意図しています。それはすべてを検出することを目指していません。
テストでは、現在検出されている例が提供されます。テストでカバーされていない場合は、そうかもしれませんが、おそらく検出されないでしょう。 *Test.phpファイルはテストであり、それらから始めて、分析されたテストコードはsrc、必要なテストクラスにあります。
より多くの通話を検出する必要がある場合は、お気軽に問題を提出したり、プルリクエストを作成したりしてください。
Composerを使用して拡張機能をインストールします。
composer require --dev spaze/phpstan-disallowed-calls
PHP静的分析ツールであるPHPSTANは要件です。
PHPSTAN/Extension-Installerを使用する場合、すべて設定されており、構成にスキップできます。
手動インストールについては、これをphpstan.neonに追加します。
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon バンドルされた構成ファイルから始めることができます。
この拡張機能は、多用途のカスタムルールもサポートしています。
カスタムルールを使用してfoo()許可したとしましょう。ただし、カスタムラッパーで使用された場合、または最初のパラメーターが指定された値に等しいかどうかを再許可する必要があります。拡張機能は、それを行う複数の方法を提供します。
再許容属性は、同様の構成を使用します。
提供されたジェネレーターを使用して、PHPのdisable_functions & disable_classes構成ディレクティブから構成スニペットを生成します。
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
関数名、メソッド名、クラス名、名前空間は、ケースに関係なく一致します( print_rもprint_R呼び出しを許可します)が、定数、ファイル名、パスなどの他のものはありません。
他のphpstanルールなしでこの拡張機能を使用することもできます。これは、たとえば、いくつかの呼び出しや何かの使用についてサードパーティのコードを確認する場合に役立つ場合があります。
貢献したい場合(すごい、ありがとう!)、貢献のためにテストを追加/実行する必要があります。 composer installを実行して最初にDEV依存関係をインストールしてから、 composer testでPHPUNITテストを実行し、 composer.jsonのscripts参照してください。また、各プッシュでアクションを備えたテストもGitHubで実行されます。
composer cs-fix実行することにより、コーディングスタイルの問題を自動的に修正できます。
ほぼ同時に作成されたわずかに異なる構成を備えた同様のプロジェクトがあります(ほんの数日差):PHPSTAN禁止コード。