PhpStorm 2020.3 ヘルプ

PHP Mess Detector

組み込みのコーディング支援に加えて、PhpStorm は、PHP Mess Detector(英語) ツールとの統合を通じてソースコードのチェックを提供します。PHP Mess Detector(英語) ツールは、コードサイズ、不整合、未使用のコード、命名規則の違反、不適切な設計などに関連する潜在的な問題(英語)を検出します。

コマンドラインではなく PhpStorm から PHP Mess Detector を使用するには、PhpStorm に登録し、PhpStorm コードインスペクションとして設定する必要があります。PhpStorm にインストールして有効にすると、このツールは開いている PHP ファイルで使用できるようになり、起動するための追加手順は必要ありません。オンザフライでのコードチェックはファイル内の更新ごとに有効になるため、発見された問題を簡単に取り除くことができます。

PHP Mess Detector によって即座に報告されるエラーと警告はポップアップメッセージとして表示されます。ツールがバッチモードで実行されると、エラーと警告がインスペクションツールウィンドウに表示されます。各メッセージには、PhpStorm の内部インスペクションと区別するために phpmd というプレフィックスが付いています。

事前定義されたルール(英語)を適用したり、独自のカスタムルールセット(英語)を定義したりできます。

前提条件

PHP Mess Detector を PhpStorm に統合する前に、次の前提条件が満たされていることを確認してください。

  • PHP エンジンの実行可能ファイルを含むディレクトリをシステム path に追加する必要があります。これにより、コード品質ツールスクリプトがシステム全体の PHP エンジンへの呼び出しを実行できます。

  • Docker Compose ベースのリモートインタープリターの場合は、必ず run モードを使用してください。

    1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP に移動します。

    2. 表示される PHP ページで、CLI インタープリターリストの横にある the Browse button をクリックします。

    3. 開いた CLI インタープリターダイアログで、選択したインタープリターのライフサイクルモードを常に新しいコンテナーを始める ('docker-compose ラン ') に設定します。

      docker-compose exec for PHP interpreter

PHP Mess Detector をインストールして構成する

PHP Mess Detector スクリプトは、ローカルスクリプト、PHP インタープリターに関連するスクリプト、またはプロジェクトの依存関係として宣言され、推奨される方法である Composer 経由でインストールされるスクリプトとして使用できます。

PHP Mess Detector と Composer をインストールする

開始する前に、Composer がマシンにインストールされ、Composer 依存関係マネージャーに従って現在のプロジェクトで初期化されていることを確認してください。

PHP Mess Detector を Composer とともにインストールすると、PhpStorm は必要なスクリプトを自動的にダウンロードし、IDE に登録し、オプションで対応するコードインスペクションを有効にして構成します。

  1. composer.json 内で、phpmd/ phpmd 依存関係レコードを require または require-dev セクションに追加します。 Ctrl+Space を押して、パッケージ名とバージョンのコード補完を取得します。

  2. 以下のいずれか 1 つを実行します:

    • エディターパネルの上部にあるインストールショートカットリンクをクリックします。

    • インストールされていない Composer パッケージインスペクションが有効になっている場合、PhpStorm は、現在インストールされていない宣言済みの依存関係をハイライトします。 Alt+Enter を押して、特定の依存関係をインストールするか、すべての依存関係を一度にインストールするかを選択します。

composer.json エディターガターのパッケージレコードの横にある the Settings/Preferences button をクリックして、対応する設定 / 環境設定ページにジャンプし、PHP Mess Detector を手動で構成します

Gutter icon for phpmd settings in composer.json

PHP Mess Detector 構成をリセットする

PHP Mess Detector が最初に構成された後、composer.json をさらに変更しても、インスペクション構成には影響しません。新しい変更を適用するには、PHP Mess Detector 構成をリセットします。

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP | 品質ツールにナビゲートします。

  2. 開いている品質ツールページで、Mess Detector 領域を展開し、構成リストの横にある the Browse button をクリックします。

  3. 開いた PHP Mess Detector ダイアログで、PHP Mess Detector パスフィールドを空にします。

    Empty PHP Mess Detector path field
  4. composer.json エディターパネルの上部にある更新をクリックして、プロジェクト Composer の依存関係を更新します。詳細については、依存関係の更新を参照してください。

PhpStorm は、PHP の Mess Detector 構成を新たに実行するため、composer.json の変更を適用します。

PHP Mess Detector を手動で構成する

手動でダウンロードしたローカル PHP コード品質ツールスクリプトまたは PHP インタープリターに関連するスクリプトを使用することができます。多くのローカルおよびリモート PHP インタープリターが存在する可能性があります。設定 / 環境設定ダイアログの PHP ページで指定されたものはプロジェクトのデフォルトとみなされます。リモート PHP インタープリターの構成またはローカル PHP インタープリターを構成するで PHP インタープリターを設定する方法の詳細を参照してください。

使用する PHP Mess Detector スクリプトを選択してください

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP | 品質ツールにナビゲートします。

  2. 開いている品質ツールページで、Mess Detector 領域を展開します。構成リストから、PHP Mess Detector スクリプトを選択します。

    • 特定のリモート PHP インタープリターに関連するスクリプトを使用するには、このインタープリターの名前を選択します。

    • ローカルスクリプトを使用するには、ローカルを選択します。この場合、ローカルの PHP Mess Detector は、どの PHP インタープリター(ローカルまたはリモート)がプロジェクトに使用されていても実行されます。PhpStorm は PHP エンジンへのパスを含むスクリプト(Windows では phpmd.bat、Linux では phpmd、macOS は macOS)を実行するため、PHP Mess Detector のローカル構成は 1 つだけです。

    • 既定のプロジェクトインタープリター、つまり設定 / 環境設定ダイアログの PHP ページで選択したスクリプトを使用するには、デフォルトでプロジェクトインタープリターを選択します。

ローカル PHP Mess Detector スクリプトを設定する

  1. PHP Mess Detector(英語) スクリプトをダウンロードしてインストールします。

    PHP Mess Detector のインストールを確認するには、インストールディレクトリに切り替えて次のコマンドを実行します。

    phpmd --version

    ツールが利用可能な場合は、次の形式のメッセージが表示されます。

    PHPMD version <version>

    独自のカスタムコーディング標準に対してコードをチェックするには、コードを作成し(英語)ます。ルールと指す ruleset.xml ファイルをルールセットのルートディレクトリに保存します。

  2. PhpStorm にローカル PHP Mess Detector スクリプトを登録してください:

    • 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP | 品質ツールにナビゲートします。

    • 開いている品質ツールページで、Mess Detector 領域を展開し、構成リストの横にある the Browse button をクリックします。

    • 表示される PHP Mess Detector ダイアログで、PHP Mess Detector パスフィールドに phpmd.bat または phpmd PHP Mess Detector 実行可能ファイルの場所を指定します。パスを手動で入力するか、the Browse button をクリックして表示されるダイアログで関連するフォルダーを選択します。

      phpmd.bat または phpmd への指定されたパスが PhpStorm と PHP Mess Detector の間の相互作用を確実にすること、すなわち PhpStorm からツールを起動でき、PhpStorm がそこから問題レポートを受け取ることを確認するには、検証ボタンをクリックします。この検証は、phpmd --version コマンドを実行することと同じです。検証に成功した場合、PhpStorm は検出された PHP Mess Detector バージョンに関する情報を表示します。

  3. 必要に応じて、ツールプロセスのタイムアウトフィールドで、PhpStorm が PHP Mess Detector からの結果を待機する時間を指定します。その後、CPU とメモリの過剰な使用を防ぐために、プロセスが終了します。

PHP インタープリターに関連付けられた PHP Mess Detector スクリプトを設定する

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP | 品質ツールにナビゲートします。

  2. 開いた品質ツールページで、Mess Detector 領域を展開し、構成リストの横にある the Browse button をクリックします。PHP Mess Detector ダイアログが開き、左側のペインに構成済みのすべての PHP Mess Detector スクリプトのリストが表示されます。そのうちの 1 つはローカルタイプで、その他はスクリプトが関連付けられている PHP インタープリターにちなんで名付けられています。

  3. ツールバーの the Add button をクリックします。開いたリモートインタープリターによる PHP Mess Detector ダイアログで、関連するスクリプトを使用するリモート PHP インタープリターを選択します。リストに関連するインタープリターが含まれていない場合は、the Browse button をクリックし、リモート PHP インタープリターの構成の説明に従って CLI インタープリターダイアログでリモートインタープリターを構成します。

    OK をクリックすると、PhpStorm は新しい PHP Mess Detector 設定がリストに追加された PHP Mess Detector ダイアログに戻り、右側のペインには選択されたリモート PHP インタープリター、それに関連付けられた PHP Mess Detector へのパス、および高度な PHP Mess Detector オプションが表示されます。

  4. 必要に応じて、ツールプロセスのタイムアウトフィールドで、PhpStorm が PHP Mess Detector からの結果を待機する時間を指定します。その後、CPU とメモリの過剰な使用を防ぐために、プロセスが終了します。

PHP Mess Detector を PhpStorm インスペクションとして設定する

Composer で PHP Mess Detector インスペクションを設定する

composer.jsonスクリプト(英語)セクション内に、デフォルトおよびカスタムの PHP Mess Detector ルールセットに関する情報を含めることができます。プロジェクトの依存関係をインストールまたは更新すると、指定されたルールセットが検出され、PHP Mess Detector 検証インスペクションが自動的に有効になります。

composer.jsonscripts セクションにルールセットが指定されていない場合、PhpStorm はさらにプロジェクトルートをチェックして、phpmd.xml のデフォルト名でルールセットを見つけます。ファイルが存在する場合は、インスペクションのカスタムルールセットとして自動的に選択されます。

  • composer.jsonscripts セクションで、phpmd PHP Mess Detector 起動コマンドをいずれかのリーフ要素に追加します。

    使用するコーディング標準を示すための引数として、組み込み標準の名前またはカスタムルールセットへのパスを指定します。

    例: 次のレコードを追加すると、コードサイズ論争の的になる組込みルールセットと、/my/src/custom_ruleset.xml ファイルで定義されているカスタムルールセットが選択されます。

    "scripts": { "phpmd": "phpmd codesize,controversial,/my/src/custom_ruleset.xml" }

PHP Mess Detector インスペクションを手動で設定する

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、エディターインスペクションをクリックします。

  2. 開いているインスペクションページで、PHP | 品質ツールノードを展開し、PHP Mess Detector 検証の横にあるチェックボックスを選択します。

  3. 右側のペインで、オプション領域のコントロールを使用して PHP Mess Detector ツールを構成します。

    • 重大度リストから、PHP Mess Detector インスペクションの重大度を選択します。選択された値は、検出された不一致が PhpStorm によってどの程度深刻に扱われ、インスペクションの結果に表示されるかを決定します。

    • スコープリストから、インスペクションアプリケーションを制限するスコープを選択します。

    • 適用する規則を定めます。

      • 事前定義されたルール(英語)を使用するには、オプション領域で、実行する検証の横にあるチェックボックスを選択します。

      • カスタムルールセットを使用するには:

        1. 1 つ以上のルールセットファイルを作成して保存します。有効なルールセットファイルは、<ruleset> ルート要素と name 属性を含む .xml ファイルです。カスタムルールセットの詳細については、http://phpmd.org/documentation/creating-a-ruleset.html(英語) を参照してください。

        2. カスタムルールセット領域で、Add button をクリックして、表示されたダイアログで関連するルール定義ファイルを選択します。OK をクリックすると、新しい項目がカスタムルールセットリストに追加されます。名前フィールドには <ruleset> タグ内の属性 name から取得したルールセット名が表示され、ファイルフィールドには選択したルールセットファイルの場所が表示されます。

チームでカスタムコーディングスタイルを共有する

  1. コーディング標準のルートディレクトリをプロジェクトルートの下に置きます。

  2. PHP Mess Detector を PhpStorm インスペクションとして設定します

  3. コーディング基準を設定します

  4. インスペクションページの上部にプロジェクトプロファイルが選択されていることを確認します。このようなプロファイルは、特定のプロジェクトの .idea ディレクトリ(たとえば、$PROJECT_DIR$/.idea/inspectionProfiles)に保存されます。詳細はプロファイルのカスタマイズを参照してください。

  5. 設定 / 環境設定ダイアログのバージョン管理ページで、.idea ディレクトリがバージョン管理下にあることを確認します。

PHP Mess Detector をバッチモードで実行する

  1. メインメニューからコード | コードのインスペクションを選択します。

  2. リストからインスペクションプロファイルを選択するか、the Browse button をクリックして、開いたインスペクションダイアログで新しいプロファイルを構成します。the Browse button をクリックして、どの修正が適用されるかを確認し、PHP Mess Detector 検証インスペクションが有効になっていることを確認することもできます。

  3. インスペクションの結果をインスペクション結果ツールウィンドウで見る。PHP Mess Detector によって報告されたエラーと警告には、PhpStorm の内部インスペクションと区別するために phpmd のプレフィックスが付けられています。

PHP Mess Detector 検証インスペクションからファイルを除外

Mess Detector の応答が Mess Detector ダイアログのツールプロセスのタイムアウトフィールドで指定された制限を超えるのを待つとき、PhpStorm はファイルを無視リストに追加することを提案します。

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP | 品質ツールにナビゲートします。

  2. 開いている品質ツールページで、Mess Detector 領域を展開し、無視されたファイルの表示リンクをクリックします。

    • ファイルを追加するには、the Add button をクリックし、表示されるダイアログで目的のファイルを探します。

    • リストからファイルを削除して Mess Detector に再度処理させるには、ファイルを選択して the Remove button をクリックします。

    • 一覧からすべてのファイルを削除するには、the Close button をクリックします。

関連ページ:

コードインスペクション

PhpStorm には、プロジェクト内の異常コードを検出して修正する一連のコードインスペクションがあります。IDE はさまざまな問題を見つけてハイライトし、デッドコードを見つけ、可能性のあるバグを見つけ、スペルの問題、コード構造全体を改善することができます。インスペクションは、すべてのプロジェクトファイル内のコード、または特定のスコープ内のみ(たとえば、本番コード内、または変更されたファイル内)のコードをスキャンできます。すべてのインスペクションには、問題がコードに影響を与える可能性がある程度の...

インスペクション結果ツールウィンドウ

この方法でツールウィンドウにアクセスするには、を使用してすでに開いている必要があります。閉じるボタンをクリックしてツールウィンドウを手動で無効にすると、ツールウィンドウはを介してのみ再び使用できます。インスペクションツールウィンドウには、インスペクションの結果が別々のタブに表示されます。各タブの左側のペインには、問題が見つかったインスペクションのツリービューが表示されます。右側のペインには、左側のペインで選択した項目の要約情報が表示されます。このボタンをクリックすると、インスペクションが実行され...

リモート PHP インタープリターの構成

リモート PHP インタープリターという用語は、リモートホストまたは仮想環境にインストールされた PHP エンジンを意味します。リモート PHP インタープリターという用語は、コンピューターにインストールされているローカル PHP インタープリターの反対語として使用されます。ローカル PHP インタープリターの構成を参照してください。SSH、Docker、Docker Compose、Vagrant、または WSL を介してリモート PHP インタープリターにアクセスできます。SSH を使用すると...

Composer 依存関係マネージャー

PhpStorm は Composer 依存関係マネージャーと統合されます。これにより、Packagist またはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は、composer.json を操作するための包括的なコーディング支援と、一般的な Composer コマンドを実行するための専用ユーザーインターフェースを提供します。Composer で Composer プロジェクトの管理、composer.json の操作 ,、追加タスクの...

インスペクション

このページを使用して、インスペクションプロファイルのカスタマイズ、インスペクション重大度レベルの構成、インスペクションの無効化と有効化、および異なるスコープのインスペクションの構成を行います。変更されたインスペクションは青でハイライトされます。プロファイルの管理:プロファイル設定したいプロファイルの名前を選択します。適用をクリックすると、選択したプロファイルがプロジェクトのハイライトに自動的に使用されます。IDE にコピー / プロジェクトにコピー: プロジェクトまたはグローバル(IDE)レベルで...

インスペクションの重大度の構成

インスペクションの重大度は、検出されたコードの問題がプロジェクトにどれほど深刻な影響を及ぼすかを示します。すべての重要度レベルには、独自のハイライトスタイルがあります。PhpStorm には、事前定義された重大度レベルのセットがあります。エラー: 構文エラーをマークします。警告: バグを生成したり、機能拡張を必要とする可能性のあるコードフラグメントをマークします。弱い警告: 改善または最適化できるコードフラグメントをマークします(冗長コード、重複したコードフラグメントなど)。サーバーの問題: 外...