PhpStorm 2024.1 ヘルプ

PHP Mess Detector

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

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

PHP Mess Detector によってオンザフライで報告されるエラーと警告は、PhpStorm の内部コードインスペクションからのエラーと警告と同じようにエディターでハイライトされます。ツールをバッチモードで実行すると、エラーと警告が問題ツールウィンドウに表示されます。各メッセージには、PhpStorm 内部インスペクションと区別するために、phpmd プレフィックスが付いています。

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

前提条件

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

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

  • Docker Compose ベースのリモートインタープリターの場合、追加のコンテナーが生成されないように、必ず docker-compose exec モードを使用してください。

    1. 設定ダイアログ(Ctrl+Alt+S)で、PHP に移動します。

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

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

      docker-compose exec for PHP interpreter

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

PHP Mess Detector と 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 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 | 品質ツール | Mess Detector に移動します。

  2. 構成リストの横にある 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 の変更を適用します。

PhpStorm で PHP Mess Detector を構成する

設定 (Ctrl+Alt+S) で | PHP | 品質ツール | PHP Mess Detector では、デフォルトの PHP インタープリターを変更したり、パスを手動でダウンロードしてインストールした PHP Mess Detector 実行可能ファイル(英語)に設定したり、PhpStorm で実行するときに PHP Mess Detector に渡されるオプションを追加したりできます。

PHP Mess Detector settings
  • 構成 : このフィールドでは、デフォルトの PHP インタープリターと PHP Mess Detector 実行可能ファイルへのパスを変更できます。

    1. インタープリターのみを変更するには、プロジェクトで構成されたローカルおよびリモート PHP インタープリターのリストから必要な項目を選択します。

    2. PHP Mess Detector 実行可能ファイルへのパス、またはインタープリターとパスの両方を変更するには、構成リストの横にある the Browse button をクリックして PHP Mess Detector ダイアログを開き、Mess Detector ダイアログリファレンスページの説明に従ってフィールドを編集します。

  • 無視対象ファイルの表示 : この設定を使用して、PHP Mess Detector 検証インスペクションからファイルを除外します。詳細については、品質ツールリファレンスページを参照してください。

  • オプション : この領域で、PHP Mess Detector を PhpStorm インスペクションとして実行するときに実行する検証の横にあるチェックボックスを選択します。詳細については、PHP Mess Detector リファレンスページを参照してください。

PHP Mess Detector を PhpStorm インスペクションとして有効にする

PHP Mess Detector を PhpStorm インスペクションとしてセットアップするには、Composer を使用した PHP Mess Detector のインストール中に自動的にセットアップする方法と PhpStorm のインスペクション設定で手動中に自動的にセットアップする方法の 2 つがあります。

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 検証の横にあるチェックボックスを選択します。

    Select PHP Mess Detector validation checkbox
  3. ページの右側のペインで、PhpStorm が PHP Mess Detector インスペクション出力を処理する方法を構成します。

    1. スコープ : インスペクションアプリケーションを制限するスコープを選択します。

    2. 重大度 : インスペクションの重大度を選択します。選択した値によって、検出された不一致が PhpStorm によってどの程度深刻に扱われ、インスペクションの結果に表示されるかが決まります。

    3. エディター内のハイライト : インスペクションによって検出された問題をエディターでハイライトする方法を選択します。

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

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

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

  3. コーディング標準を指定します。

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

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

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

  1. メインメニューで、コード | コードのインスペクションに移動します。

  2. 開いたインスペクションスコープの指定ダイアログで、リストからインスペクションプロファイルを選択するか、構成をクリックしてインスペクションダイアログを開き、新しいプロファイルを構成します。

    構成をクリックして、選択したインスペクションプロファイルの範囲内で適用される修正を確認し、PHP Mess Detector 検証インスペクションが有効になっていることを確認することもできます。

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

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

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

  1. 設定ダイアログ (Ctrl+Alt+S) で、PHP | 品質ツール | Mess Detector に移動します。

  2. 無視対象ファイルの表示リンクをクリックします。

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

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

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

関連ページ:

コードインスペクション

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

インスペクションを実行する

PhpStorm は、エディターで開かれたファイル内のコードを分析し、入力時に問題のあるコードをハイライトします。さらに、選択したファイル範囲に対して必要なインスペクションまたは一連のインスペクションを手動で実行できます。この場合、ファイル内で検出されたすべての問題に関する包括的なレポートが得られます。現在のファイルの即時分析:IDE は継続的にコードをチェックし、問題を検索します。エディターの右上隅にあるウィジェットには、現在のファイルで検出された各重大度の問題の数が表示されます。ウィジェッ...

問題ツールウィンドウ

問題ツールウィンドウには、PhpStorm がプロジェクト内で検出した問題がいくつかのタブを使用して表示されます。ウィンドウ内で問題を選択してを押すか、問題をダブルクリックしてエディター内の対応する行に移動します。ツールウィンドウのタブを切り替えるには、とを押します。設計時コードインスペクションが有効になっている場合、このタブには、現在のファイルで見つかったすべてのコードの問題が一覧表示されます。エディターでファイルを切り替えると、リストが更新されます。ツールバー:表示オプション重大度で

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

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

Composer 依存関係マネージャー

PhpStorm は Composer 依存関係マネージャーと統合されています。これにより、Packagist またはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は以下を提供します。一般的な Composer コマンド (init、install、update、および多数の追加 Composer コマンド) を実行するための専用ユーザーインターフェース。コマンド出力は Composer ログコンソールに表示されます。PhpStorm...

ローカル PHP インタープリターを構成する

ローカル PHP インタープリターは、リモートホスト、Docker コンテナー、または Vagrant 仮想環境にインストールされるリモート PHP インタープリターとは対照的に、コンピューターにインストールされる PHP エンジンです。ローカル PHP インタープリターを構成するを押して設定を開き、を選択します。表示される PHP ページで、CLI インタープリターリストの横にあるをクリックします。表示される CLI インタープリターダイアログで、左側のペインのをクリックして、ポップアップメニュー...