ここでは、コードを実行する必要のない PHP コード静的解析ツール PHPStan を紹介します。コードに対して厳密な構文検出を実行し、コード実行エラーを最小限に抑えることもできます。レート。
#PHPStan
インストール
現在、PHPStanV0.10.2 にはシステム環境が必要ですPHPのバージョンは7.1以上です。 Composer を使用してグローバルにインストールします:$ composer global require phpstan/phpstan
Use
PHPStan 静的分析を使用する方法は非常に簡単です:$ phpstan analyse [-c|--configuration CONFIGURATION] [-l|--level LEVEL] [--no-progress] [--debug] [-a|--autoload-file AUTOLOAD-FILE] [--errorFormat ERRORFORMAT] [--memory-limit MEMORY-LIMIT] [--] [<paths>]...
$ phpstan analyse --level=7 --autoload-file=/PATH/TO/vendor/autoload.php /PATH/TO/someone.php
PHPStan in VSCode
もちろん、構文分析は次のように行う必要があります。エディタで行う コードを書いた後、コマンドターミナルに切り替えてphpstanを実行するのは面倒です。そこで、おすすめの VSCode 拡張機能である PHP Static Analysis を紹介します。PHP 静的分析
まず、Composer を使用して PHPStan をグローバルにインストールし、次に拡張機能管理で PHP 静的分析を検索します。 VSCode の場合、最初に一致する拡張機能をインストールします。VSCode 再ロード ウィンドウを再ロードした後、拡張機能は VSCode で開かれた PHP ファイルを自動的に分析します。 実行中の影響: たとえば、変数は宣言されているが呼び出されない、宣言されていない変数が呼び出される、未定義のメソッドが呼び出されるなどです。このようにして、エラーが検出されます。 ただし、大まかに言えば、$this->array() メソッドは実際には存在しますが、それはマジック メソッド __call() を通じてのみ実装されます。PHPStan with Laravel
高厳密レベルの PHPStan は、宣言されていないクラス メソッドが呼び出されると、クラス内にメソッドが存在しないというエラーを報告することを検出します。クラスが __call() または __callStatic() で定義されている場合でも。 Laravel など、多くのアプリケーション フレームワークでは、エレガントさを実現するために多くの魔法のメソッドが使用されています。 PHPStan を使用して Laravel プロジェクトを検出すると、宣言されていないクラス メソッドの呼び出しで多くのエラーが当然報告されますが、この問題に対しては、laravel-ide-helper を使用して誤検知を減らすことができます。laravel-ide-helper をインストールします
$ cd /PATH/TO/LARAVEL_PROJECT $ composer require barryvdh/laravel-ide-helper
LaravelIdeHelper を注入します
app/Providers/AppServiceProvider.php の登録を編集しますメソッド:<?php ... public function register() { if ($this->app->environment() !== 'production') { $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); } // ... }Generate _ide_helper.php
$ cd /PATH/TO/LARAVEL_PROJECT $ php artisan ide-helper:generate現時点では、Laravel フレームワークの Facade クラスと、もともと __callStatic() を通じて取得された静的メソッドはすべて _ide_helper.php で宣言されており、次のようになります。 PHPStan が Laravel プロジェクトコードを検出したときに _ide_helper.php ファイルを使用すると、誤検知を減らすことができます。
PHPStan 構成
Laravel プロジェクトのルート ディレクトリに、新しい phpstan.neon ファイルを作成します。parameters: autoload_files: - %currentWorkingDirectory%/_ide_helper.phpLaravel プロジェクト、実行 phpstan コマンドを実行すると、設定 phpstan.neon が自動的に使用されます。 推奨チュートリアル:「
PHP」
以上がPHPStan を使用して PHP コードの品質を向上させるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。