PhpStorm 2020.2 ヘルプ

PHP_CodeSniffer

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

コマンドラインの代わりに 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_CodeSniffer は、プロジェクトで使用されている PHP インタープリター(ローカルまたはリモート)に関係なく実行されます。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 ダイアログで、phpcs.bat または phpcsPHP_CodeSniffer 実行可能ファイルの場所を 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" }

    次のレコードを追加すると、コーディング標準がカスタムに設定され、ルールセットのパスが < プロジェクトルート > /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. カスタムのサードパーティコーディング標準(コーダ(英語)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 には、プロジェクト内の異常コードを検出して修正する一連のコードインスペクションがあります。IDE はさまざまな問題を見つけて強調表示し、デッドコードを見つけ、可能性のあるバグを見つけ、スペルの問題、コード構造全体を改善することができます。インスペクションは、すべてのプロジェクトファ...

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

表示 | ツールウィンドウ | インスペクション結果この方法でツールウィンドウにアクセスするには、コード | コードのインスペクションを使用して既に開いている必要があります。閉じるボタンをクリックしてツールウィンドウを手動で無効にすると、ツールウィンドウはコード | コードのインスペ...

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

リモート PHP インタープリターという用語は、リモートホストまたは仮想環境にインストールされた PHP エンジンを意味します。リモート PHP インタープリターという用語は、コンピューターにインストールされているローカル PHP インタープリターの反対語として使用されます。ローカル PHP イ...

Composer 依存関係マネージャー

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

インスペクション

macOSのPhpStorm | 環境設定 | エディター | インスペクションこのページを使用して、インスペクションプロファイルのカスタマイズ、インスペクション重大度レベルの構成、インスペクションの無効化と有効化、および異なるスコープのインスペクションの構成を行います。変更されたインスペクションは...

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

インスペクションの重大度は、検出されたコードの問題がプロジェクトにどれほど深刻な影響を及ぼすかを示します。すべての重要度レベルには、独自の強調表示スタイルがあります。PhpStorm には、事前定義された重大度レベルのセットがあります。エラー:構文エラーをマークします。警告:バグを生成したり、機能拡...