PhpStorm 2021.1 ヘルプ

PHP_CodeSniffer

PhpStorm は、PHP_CodeSniffer(英語) ツールとの統合を通じてコードスタイルチェックを提供します。PHP_CodeSniffer(英語) ツールは、選択したコーディング標準との整合性についてコードを検証します。事前定義されたコーディング標準(英語)の 1 つを指定するか、デフォルトの PHP_CodeSniffer の Standards ディレクトリの外側にあるルートディレクトリで、以前に定義した独自のコーディング標準(英語)を使用できます。さらに、カスタムコーディングスタイルをチームと共有できます。

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

PHP_CodeSniffer によってオンザフライで報告されたエラーと警告は、ポップアップメッセージとして表示されます。ツールをバッチモードで実行すると、インスペクションツールウィンドウにエラーと警告が表示されます。各メッセージには、PhpStorm 内部インスペクションと区別するために phpcs プレフィックスが付いています。PhpStorm は PHP コードの美化と修正(英語)ツールとも統合されており、検出された問題の多くを修正できます。

前提条件

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

  • PHP_CodeSniffer バージョン 1.5.0 以降を使用しています。

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

  • 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_CodeSniffer をインストールして構成する

PHP_CodeSniffer スクリプトは、ローカルスクリプト、PHP インタープリターに関連付けられたスクリプト、またはプロジェクトの依存関係として宣言され、Composer を介してインストールされるスクリプトとして使用できます。これは推奨される方法です。

Composer で PHP_CodeSniffer をインストールする

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

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

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

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

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

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

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

Gutter icon for php_codesniffer settings in composer.json

PHP_CodeSniffer 設定をリセット

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

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

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

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

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

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

PHP_CodeSniffer を手動で設定する

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

使用する PHP_CodeSniffer スクリプトを選択する

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

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

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

    • ローカルスクリプトを使用するには、ローカルを選択します。この場合、プロジェクトで使用されている PHP インタープリター(ローカルまたはリモート)に関係なく、ローカルの PHP_CodeSniffer が実行されます。PhpStorm は PHP エンジンへのパスを含むスクリプト(Windows の場合は phpcs.bat、Linux および macOS の場合は phpcs)を実行するため、PHP_CodeSniffer のローカル構成は 1 つしか存在できないことに注意してください。

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

ローカルの PHP_CodeSniffer スクリプトを構成する

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

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

    phpcs --version

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

    PHP_CodeSniffer version <version> (stable) by Squiz. (http://www.squiz.net)

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

  2. ローカルの PHP_CodeSniffer スクリプトを PhpStorm に登録します。

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

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

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

      phpcs.bat または phpcs への指定されたパスが PhpStorm と PHP_CodeSniffer 間の相互作用を保証することを確認するには、つまり、ツールを PhpStorm から起動でき、PhpStorm はそこから問題レポートを受信し、検証ボタンをクリックします。この検証は、phpcs --version コマンドの実行と同等です。検証に成功すると、PhpStorm は検出された PHP_CodeSniffer バージョンに関する情報を表示します。

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

  4. 必要に応じて、PHP コードの美化と修正の設定領域で、phpcbf へのパスフィールドに PHP コードの美化と修正(英語)ツールへのパスを指定します。これにより、PHP_CodeSniffer によって検出されたエラーの多くを自動的に修正できます。PHP_CodeSniffer を Composer とともにインストールすると、PHP コードの美化と修正が検出され、自動的にセットアップされます。

PHP インタープリターに関連付けられた PHP_CodeSniffer スクリプトを構成する

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

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

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

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

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

  5. 必要に応じて、PHP コードの美化と修正の設定領域で、phpcbf へのパスフィールドに PHP コードの美化と修正(英語)ツールへのパスを指定します。これにより、PHP_CodeSniffer によって検出されたエラーの多くを自動的に修正できます。PHP_CodeSniffer を Composer とともにインストールすると、PHP コードの美化と修正が検出され、自動的にセットアップされます。

PHP_CodeSniffer を PhpStorm インスペクションとして構成する

Composer を使用して PHP_CodeSniffer インスペクションを構成する

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

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

  • composer.jsonscripts セクションで、phpcs PHP_CodeSniffer 起動コマンドをリーフ要素の 1 つに追加します。

    使用するコーディング標準を示すために --standard 引数を指定します。例: 次のレコードを追加すると PSR2 にコーディング標準が設定されます。

    "scripts": { "phpcs": "phpcs --standard=PSR2" }

    次のレコードを追加すると、コーディング標準がカスタムに設定され、ルールセットのパスが <project root>/phpcs.xml に設定されます。

    "scripts": { "phpcs": "phpcs --standard=phpcs.xml" }

さらに、composer.jsonrequire-dev セクション内にカスタムの非 PSR 標準依存関係を提供して、自動的に検出させることもできます。現在、以下の規格がサポートされています。

PHP_CodeSniffer インスペクションを手動で構成する

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

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

  3. ページの右側のペインで、オプションエリアのコントロールを使用して PHP_CodeSniffer ツールを構成します。

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

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

    3. 拡張子を持つファイルを確認するフィールドに、PHP_CodeSniffer によってチェックされるファイル拡張子のコンマ区切りリストを提供します。

    4. エラーに加えて PHP_CodeSniffer が警告を報告するようにするには、警告を次のように表示する... チェックボックスを選択し、リストから重大度を選択します。エラーのみを報告し、警告の報告を抑制するには、警告を次のように表示する... チェックボックスをオフにします。

    5. カスタムのサードパーティコーディング標準(Coder(英語)Joomla コーディング標準(英語)など)に依存している場合は、使用する前に PHP_CodeSniffer と統合する必要があります。これを行うには、インストールされている標準パスチェックボックスを選択し、the Browse button をクリックして、開いたダイアログでカスタム標準インストールディレクトリを選択します。

    6. スニフ名を表示チェックボックスを選択して、対応するスニフの名前をインスペクションサマリーに加えてエディターまたはインスペクション結果に表示します。

    7. 適用するコーディング基準を定めます。

      • 事前定義されたコーディング標準(英語)の 1 つを使用するには、コーディング基準リストを選択し、コードをチェックするコーディングスタイルを指定します。このリストには、メインの php_codesniffer ディレクトリ構造内にインストールされているすべてのコーディング標準が含まれています。

      • 以前に定義した独自のコーディング標準(英語)に対してコードをチェックするには、カスタムを選択します。the Browse button をクリックし、開いたカスタムコーディング標準ダイアログで、ルールセットへのパスフィールドに独自のコーディング標準の ruleset.xml ファイルへのパスを指定します。パスを手動で入力するか、the Browse button をクリックして、開いたダイアログで関連するフォルダーを選択します

PHP_CodeSniffer によって検出された問題を修正

PhpStorm は PHP コードの美化と修正(英語)ツールと統合され、検出された問題の多くを修正できます。PHP_CodeSniffer を Composer とともにインストールすると、PHP コードの美化と修正が検出され、自動的にセットアップされます。それ以外の場合は、手動で設定する必要があります。

クイックフィックスを使用して問題を修正する

PhpStorm は問題を検出すると、PHP_CodeSniffer インスペクション設定に従って問題をハイライトします。

  1. 検出された問題にキャレットを置いて the Intention action button をクリックするか、または Alt+Enter を押します。

  2. ポップアップメニューから PHP コードの美化と修正: ファイル全体を修正するを選択してください。これにより、現在のファイルで検出されたすべての問題が修正されます。

バッチモードで問題を検出したり、コードのクリーンアップで自動的に修正したりすることもできます。

コードクリーンアップで自動的に問題を修正する

  1. メインメニューからコード | コードのクリーンアップを選択します。

  2. 表示されるコードクリーンアップスコープの指定ダイアログで、インスペクションプロファイルを適用する範囲を選択します。

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

    the Code Cleanup Inspections dialog
  4. OK をクリックしてコードのクリーンアップを開始します。

PHP_CodeSniffer をバッチモードで実行する

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

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

  3. インスペクション結果ツールウィンドウのインスペクションの結果を表示します。PHP_CodeSniffer によって報告されたエラーと警告には、PhpStorm 内部インスペクションと区別するために、phpcs の接頭辞が付いています。

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

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

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

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

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

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

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

関連ページ:

コードインスペクション | PhpStorm

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

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

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

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

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

Composer 依存関係マネージャー | PhpStorm

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

インスペクション | PhpStorm

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

インスペクションの重大度を変更する | PhpStorm

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