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