PHP_CodeSniffer
PhpStorm は、PHP_CodeSniffer(英語) ツールとの統合を通じてコードスタイルチェックを提供します。ツールは選択したコーディング標準との整合性についてコードを検証します。事前定義されたコーディング標準(英語)の 1 つを指定するか、デフォルトの PHP_CodeSniffer の Standards ディレクトリの外側にあるルートディレクトリで、以前に定義した独自(英語)のコーディング標準を使用できます。さらに、カスタムコーディングスタイルをチームと共有できます。
コマンドラインの代わりに PhpStorm の PHP_CodeSniffer を使用するには、それを PhpStorm に登録し、PhpStorm コードインスペクションとして構成する必要があります。PhpStorm にインストールして有効にすると、開いている PHP ファイルでツールを使用できるようになり、起動するために追加の手順は必要ありません。オンザフライのコードチェックは、ファイルが更新されるたびにアクティブ化されるため、発見された問題を簡単に取り除くことができます。
PHP_CodeSniffer によってオンザフライで報告されるエラーと警告は、PhpStorm の内部コードインスペクションからのエラーと警告と同じ方法でエディターでハイライトされます。ツールをバッチモードで実行すると、エラーと警告が問題ツールウィンドウに表示されます。各メッセージには、PhpStorm 内部インスペクションと区別するために、phpcs
接頭辞が付いています。
PhpStorm は PHP コードの美化と修正(英語)ツールとも統合されており、検出された問題の多くを修正できます。
前提条件
PHP_CodeSniffer を PhpStorm に統合する前に、次の前提条件が満たされていることを確認してください。
PHP_CodeSniffer バージョン 1.5.0 以降を使用しています。
PHP エンジンの実行可能ファイルを含むディレクトリをシステム
path
に追加する必要があります。これにより、コード品質ツールスクリプトがシステム全体の PHP エンジンへの呼び出しを実行できるようになります。Docker Compose ベースのリモートインタープリターの場合、追加のコンテナーが生成されないように、必ず
docker-compose exec
モードを使用してください。設定ダイアログ(Ctrl+Alt+S)で、 に移動します。
表示される PHP ページで、CLI インタープリターリストの横にある をクリックします。
開いた CLI インタープリターダイアログで、選択したインタープリターのライフサイクルモードを既存のコンテナーに接続する ('docker-compose exec') に設定します。
PHP_CodeSniffer をインストールして構成する
Composer で PHP_CodeSniffer をインストールする
PHP_CodeSniffer を Composer と共にインストールすると、PhpStorm は必要なスクリプトを自動的にダウンロードし、IDE に登録し、オプションで対応するコードインスペクションを有効にして構成します。
composer.json 内で、
squizlabs/php_codesniffer
依存関係レコードをrequire
キーまたはrequire-dev
キーに追加します。パッケージ名とバージョンのコード補完を取得するには、Ctrl+Space を押します。以下のいずれか 1 つを実行します:
エディターパネルの上部にあるインストールショートカットリンクをクリックします。
インストールされていない Composer パッケージインスペクションが有効になっている場合、PhpStorm は、現在インストールされていない宣言済みの依存関係をハイライトします。Alt+Enter を押して、特定の依存関係をインストールするか、すべての依存関係を一度にインストールするかを選択します。
composer.json エディターのガター内のパッケージレコードの横にある をクリックすると、対応する設定ページが表示され、そこで PHP_CodeSniffer を手動で構成できます。
PHP_CodeSniffer 設定をリセット
PHP_CodeSniffer が最初に構成された後、composer.json をさらに変更しても、インスペクション構成には影響しません。新しい変更を適用するには、PHP_CodeSniffer 構成をリセットします。
設定ダイアログ (Ctrl+Alt+S) で、 に移動します。
構成リストの横にある をクリックします。
開いた PHP_CodeSniffer ダイアログで、PHP_CodeSniffer パスフィールドを空にします。
composer.json エディターパネルの上部にある更新をクリックして、プロジェクト Composer の依存関係を更新します。詳細については、「依存関係の更新」を参照してください。
PhpStorm は、PHP_CodeSniffer 構成を新たに実行するため、composer.json の変更を適用します。
PhpStorm で PHP_CodeSniffer を構成する
Composer を使用して PHP_CodeSniffer をインストールすると、PhpStorm は vendor/bin
フォルダー内の PHP_CodeSniffer および PHP Code Beautifier と Fixer の実行可能ファイルを自動的に検出し、システムパスで構成された PHP インタープリターを設定して実行します。
設定 (Ctrl+Alt+S) で | では、デフォルトの PHP インタープリターを変更したり、パスを手動でダウンロードしてインストールした PHP_CodeSniffer 実行可能ファイル(英語)に設定したり、PhpStorm で実行するときに PHP_CodeSniffer に渡されるオプションを追加したりできます。
構成 : このフィールドでは、デフォルトの PHP インタープリターと、PHP_CodeSniffer および PHP Code Beautifier と Fixer の実行可能ファイルへのパスを変更できます。
インタープリターのみを変更するには、プロジェクトで構成されたローカルおよびリモート PHP インタープリターのリストから必要な項目を選択します。
実行可能ファイルへのパス、またはインタープリターとパスの両方を変更するには、構成リストの横にある をクリックして PHP_CodeSniffer ダイアログを開き、PHP_CodeSniffer ダイアログリファレンスページの説明に従ってフィールドを編集します。
無視対象ファイルの表示 : この設定を使用して、PHP_CodeSniffer 検証インスペクションからファイルを除外します。詳細については、品質ツールリファレンスページを参照してください。
オプション : この領域で、PHP_CodeSniffer を PhpStorm インスペクションとして実行するオプションを追加します。PHP_CodeSniffer リファレンスページの説明に従って、フィールドを編集します。
PHP_CodeSniffer を PhpStorm インスペクションとして有効にする
PHP_CodeSniffer を PhpStorm インスペクションとして設定するには、Composer を使用した PHP_CodeSniffer のインストール中に自動的に設定する方法と PhpStorm のインスペクション設定で手動中に自動的に設定する方法の 2 つがあります。
PHP_CodeSniffer インスペクションを Composer で有効にする
composer.json のスクリプト(英語)セクション内に、デフォルトおよびカスタムの PHP_CodeSniffer ルールセットに関する情報を含めることができます。プロジェクトの依存関係をインストールまたは更新すると、指定されたルールセットが検出され、PHP_CodeSniffer 検証インスペクションが自動的に有効になります。
composer.json の scripts
セクションにルールセットが指定されていない場合、PhpStorm はさらにプロジェクトルートをチェックして、phpcs.xml のデフォルト名でルールセットを見つけます。ファイルが存在する場合は、インスペクションのカスタムルールセットとして自動的に選択されます。
composer.json の
scripts
セクションで、phpcs
PHP_CodeSniffer 起動コマンドをリーフ要素の 1 つに追加します。使用するコーディング標準を示すために
--standard
引数を指定します。例: 次のレコードを追加すると PSR2 にコーディング標準が設定されます。"scripts": { "phpcs": "phpcs --standard=PSR2" }次のレコードを追加すると、コーディング標準がカスタムに設定され、ルールセットのパスが <project root>/phpcs.xml に設定されます。
"scripts": { "phpcs": "phpcs --standard=phpcs.xml" }
さらに、composer.json の require-dev
セクション内にカスタムの非 PSR 標準依存関係を提供して、自動的に検出させることもできます。現在、以下の規格がサポートされています。
インスペクション設定で PHP_CodeSniffer 検証を有効にする
設定ダイアログ (Ctrl+Alt+S) で、エディターのインスペクションをクリックします。
開いているインスペクションページで、 ノードを展開し、PHP_CodeSniffer 検証の横にあるチェックボックスを選択します。
ページの右側のペインで、PhpStorm が PHP_CodeSniffer インスペクション出力を処理する方法を構成します。
スコープ : インスペクションアプリケーションを制限するスコープを選択します。
重大度 : インスペクションの重大度を選択します。選択した値によって、検出された不一致が PhpStorm によってどの程度深刻に扱われ、インスペクションの結果に表示されるかが決まります。
エディター内のハイライト : インスペクションによって検出された問題をエディターでハイライトする方法を選択します。
PHP_CodeSniffer をバッチモードで実行する
メインメニューで、
に移動します。開いたインスペクションスコープの指定ダイアログで、リストからインスペクションプロファイルを選択するか、構成をクリックしてインスペクションダイアログを開き、新しいプロファイルを構成します。
構成をクリックして、選択したインスペクションプロファイルの範囲内で適用される修正を確認し、PHP_CodeSniffer 検証インスペクションが有効になっていることを確認することもできます。
問題ツールウィンドウのインスペクションの結果を表示します。PHP_CodeSniffer によって報告されたエラーと警告には、PhpStorm 内部インスペクションと区別するために、
phpcs
の接頭辞が付いています。
PHP_CodeSniffer によって検出された問題を修正
PhpStorm は PHP コードの美化と修正(英語)ツールと統合され、検出された問題の多くを修正できます。PHP_CodeSniffer を Composer とともにインストールすると、PHP コードの美化と修正が検出され、自動的にセットアップされます。それ以外の場合は、手動で設定する必要があります。
クイックフィックスを使用して問題を修正する
PhpStorm は問題を検出すると、PHP_CodeSniffer インスペクション設定に従って問題をハイライトします。
検出された問題にキャレットを置いて をクリックするか、Alt+Enter を押します。
ポップアップメニューから PHP コードの美化と修正: ファイル全体を修正するを選択してください。これにより、現在のファイルで検出されたすべての問題が修正されます。
バッチモードで問題を検出したり、コードの再フォーマットで自動的に修正したりすることもできます。
コードの再フォーマットに関する問題を修正する
コードの再フォーマットアクションを実行することで、PHP_CodeSniffer によって検出された問題を修正できます。
品質ツールの設定で PHP コードの美化と修正を外部フォーマッタとして設定します。
これを行うには、設定ダイアログ (Ctrl+Alt+S) で に移動し、外部フォーマッターセクションで PHP コードの美化と修正を選択します。
必要なファイルまたはプロジェクトスコープにコードの整形を適用します。
エディターで開かれたコードフラグメントまたはファイルの場合、メインメニューから
を選択するか、Ctrl+Alt+L を押します。プロジェクトツールウィンドウで選択したファイル、ディレクトリ、ファイルのグループについて、コンテキストメニューから を選択するか、Ctrl+Alt+L を押します。
PHP_CodeSniffer 検証インスペクションからファイルを除外
PHP_CodeSniffer の応答を待ち、PHP_CodeSniffer ダイアログのツールプロセスのタイムアウトフィールドで指定された制限を超えると、PhpStorm はファイルを無視リストに追加することを提案します。
設定ダイアログ (Ctrl+Alt+S) で、 に移動します。
無視対象ファイルの表示リンクをクリックします。
ファイルを追加するには、 をクリックし、表示されるダイアログで目的のファイルを探します。
リストからファイルを削除し、PHP_CodeSniffer で再度処理するには、ファイルを選択して をクリックします。
一覧からすべてのファイルを削除するには、 をクリックします。
関連ページ:
コードインスペクション
PhpStorm には、プロジェクト内の異常なコードを検出して修正する一連のコードインスペクションがあります。IDE は、さまざまな問題を見つけてハイライトし、デッドコードを見つけ、考えられるバグやスペルの問題を見つけ、全体的なコード構造を改善することができます。インスペクションは、すべてのプロジェクトファイルまたは特定のスコープでのみ(たとえば、本番コードまたは変更されたファイルでのみ)コードをスキャンできます。すべてのインスペクションには、問題がコードに影響を与える可能性がある程度の重大度レ...
インスペクションを実行する
PhpStorm は、エディターで開かれたファイル内のコードを分析し、入力時に問題のあるコードをハイライトします。さらに、選択したファイル範囲に対して必要なインスペクションまたは一連のインスペクションを手動で実行できます。この場合、ファイル内で検出されたすべての問題に関する包括的なレポートが得られます。現在のファイルの即時分析:IDE は継続的にコードをチェックし、問題を検索します。エディターの右上隅にあるウィジェットには、現在のファイルで検出された各重大度の問題の数が表示されます。ウィジェッ...
問題ツールウィンドウ
問題ツールウィンドウには、PhpStorm がプロジェクト内で検出した問題がいくつかのタブを使用して表示されます。ウィンドウ内で問題を選択してを押すか、問題をダブルクリックしてエディター内の対応する行に移動します。ツールウィンドウのタブを切り替えるには、とを押します。設計時コードインスペクションが有効になっている場合、このタブには、現在のファイルで見つかったすべてのコードの問題が一覧表示されます。エディターでファイルを切り替えると、リストが更新されます。ツールバー:表示オプション重大度で
リモート PHP インタープリターの構成
リモート PHP インタープリターは、リモートホストまたは仮想環境にインストールされる PHP エンジンです。リモート PHP インタープリターという用語は、ローカルコンピューターにインストールされるローカル PHP インタープリターの反対です。PhpStorm では、Docker コンテナー内、Docker Compose、Vagrant、WSL 経由で、SSH 経由でリモート PHP インタープリターへのアクセスを構成できます。SSH 構成タイプを使用すると、リモートホスト上のサーバーにインスト...
Composer 依存関係マネージャー
PhpStorm は Composer 依存関係マネージャーと統合されています。これにより、Packagist またはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は以下を提供します。一般的な Composer コマンド (init、install、update) と、その他の Composer コマンドを実行するための専用ユーザーインターフェース。コマンド出力は Composer ログコンソールに表示されます。PhpStorm プロ...
ローカル PHP インタープリターを構成する
ローカル PHP インタープリターは、リモートホスト、Docker コンテナー、または Vagrant 仮想環境にインストールされるリモート PHP インタープリターとは異なり、コンピューターにインストールされる PHP エンジンです。ローカル PHP インタープリターを構成するを押して設定を開き、を選択します。表示される PHP ページで、CLI インタープリターリストの横にあるをクリックします。表示される CLI インタープリターダイアログで、左側のペインのをクリックして、ポップアップメニューか...