ホームページ  >  記事  >  バックエンド開発  >  PHPStan を使用して PHP コードの品質を向上させる

PHPStan を使用して PHP コードの品質を向上させる

Guanhui
Guanhui転載
2020-06-08 09:14:204988ブラウズ

PHPStan を使用して PHP コードの品質を向上させる

ここでは、コードを実行する必要のない 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>]...

  • configuration : run 構成ファイルへのパス;

  • level: 厳密なレベル、0 ~ 7、大きいほど厳格;

  • no- progress: 進行状況を表示しません;

  • debug: デバッグ モード;

  • autoload-file: ファイルを自動的にロードするパス;

  • errorFormat: エラー形式;

  • memory-limit: メモリ制限;

  • paths: ファイル パス分析されることになる。

たとえば、PHP ファイルを分析します:

$ phpstan analyse --level=7 --autoload-file=/PATH/TO/vendor/autoload.php /PATH/TO/someone.php

PHPStan in VSCode

もちろん、構文分析は次のように行う必要があります。エディタで行う コードを書いた後、コマンドターミナルに切り替えてphpstanを実行するのは面倒です。そこで、おすすめの VSCode 拡張機能である PHP Static Analysis を紹介します。

PHP 静的分析

PHPStan を使用して PHP コードの品質を向上させる

まず、Composer を使用して PHPStan をグローバルにインストールし、次に拡張機能管理で PHP 静的分析を検索します。 VSCode の場合、最初に一致する拡張機能をインストールします。VSCode 再ロード ウィンドウを再ロードした後、拡張機能は VSCode で開かれた PHP ファイルを自動的に分析します。

実行中の影響:

PHPStan を使用して 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() !== &#39;production&#39;) {
            $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.php

Laravel プロジェクト、実行 phpstan コマンドを実行すると、設定 phpstan.neon が自動的に使用されます。

推奨チュートリアル:「

PHP

以上がPHPStan を使用して PHP コードの品質を向上させるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。