PhpStorm 2022.3 は新しい UI プレビュー、PHP 8.2 サポート、PHP 対応の Code Vision、クイックフィックスプレビュー、ParaTest のサポート、PHPDoc のレンダリングビュー、データベースツールでの Redis などを含むメジャーアップデートです。
どなたでも最新の UI をお試しいただけます。この UI はまだベータ/プレビュー段階であるため、デフォルトではオフになっています。
新しい UI には、Settings/Preferences(設定/環境設定)| Appearance & Behavior(外観と動作)| New UI Preview(新しい UI のプレビュー)で切り替え可能です。
新しい UI はさらにすっきりし、集中の妨げとなる要素が少なくなっているため、大部分の作業をこれまでと同じやり方でより素早く行えるようになっています。
このリリースでは多くの項目が視覚的に改善されています。 以下では、特に重要な改善内容を説明しています。
エディター内では、PHP コードの横に PHP のシンボルであるクラス、トレイト、インターフェース、メソッド、または関数に関する追加情報が表示されます。
使用箇所の数が表示されるため、確認のためにシンボルをクリックする必要はありません。
クラスとインターフェースについては、継承と実装の数がそれぞれに表示されます。
また、特定のコードに最も多くの変更を加えた人に関しても Git の情報が表示されるため、そのコードを最もよく理解しているコードオーナーを簡単に確認できます。
一部のコードの問題は、Alt+Enter を押して自動的に修正可能です。
提案されたクイックフィックスやインテンションを適用する前に結果をプレビューし、コードがどのように変更されるかをその場で確認できるようになりました。
レンダリングが改善された HTML 形式対応のオプションを使用することで、PhpStorm 2022.3 での PHPDoc ブロックの外観を変更できるようになりました。 このため、アノテーションの多いコードでも可読性が大幅に向上します。
新しいレンダリングビューを切り替えるには、PHPDoc ブロック付近にあるガターアイコン をクリックします。
すべての PHPDoc コメントに対してレンダリングをオンにするには、ガターアイコンを右クリックして、Render All Doc Comments(すべての Doc コメントをレンダリング)を選択します。
PhpStorm では任意の関数、クラス、またはメソッドで Ctrl+Q を押すと、エディター内にドキュメントが表示されます。
このポップアップが大きく改良されました。 このリリースではすべての情報が IDE 内に直接表示されるため、ブラウザーに切り替えてドキュメントを調べる必要はありません。
PhpStorm 2022.3 では、PHP 8.2 のフルサポートが提供されています。 IDE のほとんどの変更は組織的に PhpStorm のワークフローに取り込まれているため、ここではユーザーが知っておくべき新機能のみに触れたいと思います。
読み取り専用クラスは、読み取り専用プロパティのみを持つクラスを手軽に宣言するための手段です。 このクラスはデータの整合性を高める目的で使用できます。
PhpStorm では読み取り専用クラスに関する以下の機能を提供しています。
PHP 8.2 では存在しないプロパティにアクセスしようとすると、非推奨の通知が表示されます。
PhpStorm はそのような使用箇所をハイライトし、プロパティを追加するか、#[AllowDynamicProperties]
属性を使用することでエラーに対処するクイックフィックスを提供します。
PHP 8.2 では選言標準形型のサポートに加えて、スタンドアロンの null
、true
、および false
型のサポートが追加されています。 PhpStorm でもこれらすべてをサポートするようにしました。
PHP 8.2 では、さらにいくつかの機能が非推奨となりました。PhpStorm はこれを受け、それらを検出する対応のインスペクションとコードを更新するクイックフィックスを追加しました。
${}
文字列補間文字列内で変数を使用する場合、これまでは 3 つの補間方法を選択できました。 そのうちの 1 つが非推奨になり、今後削除される予定です。
その出現箇所は PhpStorm によってハイライトされ、Alt+Enter クイックフィックスを使用してコードを更新できます。
PHP 8.2 では関数のいくつかの呼び出し方法が非推奨となりました。
無効なコードは PhpStorm によってハイライトされ、Alt+Enter クイックフィックスを使用してコードを更新できます。
PhpStorm はコードベース全体をまとめてスキャンし、問題の可能性がある箇所をすべて検出します。 Code(コード)| Analyze Code(コードの解析)| Run Inspection by Name(インスペクション名を指定して実行)に移動し、 “dynamic property” のように検索して PhpStorm に後の処理を任せることができます。
Redis のサポートが満を持して先行実装されました。
Xdebug の構成がうまくいかない場合は、PhpStorm で以下に示すいくつかの方法を実行することで問題を特定できます。
phpinfo()
の出力を検証する phpinfo()
の呼び出しを PHP スクリプトかページに追加して、ブラウザーに表示される関数の出力をコピーします。 次に Run(実行) / Web Server Debug Validation(Web サーバーのデバッグ検証)を呼び出すと、前の手順でコピーした phpinfo()
の出力を貼り付けるダイアログが表示されます。
PhpStorm がサーバー構成を解析し、最もよくある問題を検出します。
If the phpinfo()
information didn’t help, you can use PhpStorm’s validation script on the server.
Xdebug 3.2 には「return from function」という戻り値を検査できる追加のデバッグステップがあります。
PhpStorm 2022.3 はこの新機能をサポートしています。 この新機能を呼び出すには、関数の最後のステートメントで Step Into(ステップイン)を押します。 すると、Watches(ウォッチ)に追加の変数が表示されます。
ついに PhpStorm が並列テストのサポートを開始しました!
テストを並列実行するには、テストの実行構成で Use ParaTest(ParaTest の使用)をオンにして、ParaTest バイナリへのパスが正しく設定されていることを確認します。 通常、ParaTest が composer.json
に追加されている場合は ./vendor/bin/paratest_for_phpstorm
のようにパスが設定されています。
Preferences(環境設定)| PHP | Quality Tools(品質ツール)で外部フォーマッターを選択できるようになりました。 You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.
A popular task runner for PHP, Robo, received the following extended support:
If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.
もう date()
の形式を覚える必要も探す必要もありません。 PhpStorm 2022.3 では、日付形式の文字列にカーソルを合わせると日付の表示例がツールチップに表示されるようになりました。
また、日付形式の文字列を編集する際には、形式のパラメーターとして認識されるすべての文字に対応するヒントが付いた自動補完を使用できます。
Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.
PhpStorm 2022.3 では、このサポートに欠けていた最後のピースが追加されました。ループ内の array shape 項目が完全にコード補完されるようになります。
2 つの古い同期ソリューション(IDE Settings Sync(IDE 設定の同期)と Settings Repository(設定リポジトリ))を 1 つの新しい Settings Sync(設定の同期)にまとめました。 さまざまな IDE とマシン間で確実に設定を同期できます。
これまで設定の同期ソリューションを使用していなかった方でも、新しいソリューションを試してみたい場合は、Settings(設定)/ Preferences(環境設定)| Settings Sync(設定の同期)| Enable Settings Sync(設定の同期を有効にする)で有効にできます。
Settings(設定)/ Preferences(環境設定)| Build, Execution, Deployment(構築、実行、デプロイ)| Docker で、この種の接続をセットアップできます。
ハイライト中のイメージ名に対して(Alt-Enter で)呼び出したコンテキストアクションから Pull Docker image(Docker イメージのプル)を選択すると、Dockerfile、docker-compose.yml、または Testcontainers を使うテストを実行することなく必要なイメージをプルできます。
.dockerignore ファイルでハイライトと補完を使用できます。
複数行のスクリプトを Dockerfile で使用できます。
Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.
HTTP クライアントで URL が長いリクエストの整形オプションが改善されました。 Put query parameters on separate lines(クエリパラメーターを別々の行に配置)コンテキストアクションを使用してクエリを小さなフラグメントに分解し、それを別々の行に配置することも可能です。
HTTP クライアントで、リクエスト前に実行されるスクリプトブロックがサポートされました。 リクエスト実行の前にデータを生成し、それを変数を使用して後続のリクエストに渡すことができます。
PhpStorm に сrypto API が導入され、HTTP リクエストで md5 または sha1 ハッシュを計算できるようになりました。
よりランダムな関数も利用できるようになり、簡単な API テストに役立ちます。
PhpStorm の ウェルカム画面で使用できる New Project(新規プロジェクト)ウィザードに、Vite と Next.js 用のプロジェクトテンプレートが追加されました。 また、Vue 用のプロジェクトテンプレートも最新の標準に従って更新されました。
Code Vision のインレイヒントが JavaScript と TypeScript でも機能するようになりました。 このヒントにより、コード内にある各種のクラス、メソッド、型エイリアス、およびインターフェースの使用箇所が追跡しやすくなります。
PhpStorm が未解決のインポートを処理し、Vue コンポーネントのインポートに関する提案を示すようになりました。 また、props デストラクチャ構文のサポートの追加、Vue ライブラリコンポーネント props に対応したコード補完と型チェックの動作改善、および Nuxt 3 に関する複数の問題の修正も行われています。
PhpStorm now supports Vitest, a Vite-native unit test framework! ガターアイコンを含む期待されるすべての主な方法でテストの実行、再実行、およびデバッグを行えます。 また、すべてのテストシナリオに対してウォッチモードがデフォルトで有効になっています。 ウォッチモードではスナップショットテストとカバレッジもサポートされているため、コーディング中にカバレッジに関するフィードバックをほぼ瞬時に受けることができます。
上記はこのリリースで最も重要な変更ですが、もちろんこれだけではありません。 このリリースに含まれるすべての機能強化は、PhpStorm ブログのリリースのお知らせをご覧ください。