PhpStorm の新機能

PhpStorm 2020.3 の新機能

PhpStorm 2020.3 は、PHP 8、PHPStan、Psalm、Tailwind CSS、Xdebug 3、Code With Me を介した共同開発のサポートを導入するメジャーアップデートです。

PHP 8

PHP 8.0(英語) は、多くの驚くべき新機能を備えた主要な言語アップデートです。PhpStorm は、既存のコードが互換性があることを確認し、コードベースをより迅速に更新し、最新の言語の改善を利用できます。

See language version

言語バージョンを見る

これで、プロジェクトで使用されている言語バージョンをいつでも確認できます。対応するインジケーターをステータスバーに配置しました。 composer.json に PHP バージョンの制限が記載されていない場合は、そこから言語バージョンを変更することもできます。

Add named arguments identifiers

名前付き引数

PHP 8 の関数とメソッドの引数は、パラメーター名を指定することで渡すことができます。これにより、オプションのパラメーターを設定する必要がなくなり、呼び出しが自己文書化されるようになりました。

PhpStorm は次のことに役立ちます。

  • 引数名が正しいことを確認してください。
  • Alt+Enter クイックフィックスを使用して、パラメーター名を自動的に追加します。
  • 冗長な引数を削除。
Convert to promoted property

コンストラクタープロパティプロモーション

この機能を使用すると、コンストラクターを使用して変数を初期化するときに、定型コードの量を減らすことができます。

PhpStorm では、コンストラクターで初期化されたプロパティをプロモートされたプロパティに変換したり、 プロモートプロパティに変換 Alt+Enter クイックフィックスを使用して元に戻したりすることができます。

Validate nullsafe operator usages

Nullsafe 演算子

null チェックで面倒な条件を使用する代わりに、新しい ?-> 演算子を使用すると、要素ごとに null の暗黙的なチェックを使用して呼び出しのチェーンを作成できます。

PhpStorm は、オペレーターが正しく使用されていることを確認します。

Convert switch statement to match expression

一致式

新しい match 式は、switch ステートメントの型セーフでコンパクトな代替手段です。 match 式は、値として使用して変数に割り当てたり、返すことができます。

PhpStorm は、switch ブロックを match 式に変換できるかどうかを判断し、Alt+Enter クイックフィックスを使用して自動的に変換します。

新しい表現では、誤用が見づらいかもしれません。PhpStorm はあなたのためにハイライトします。

New functions for strings

文字列の新機能: str_contains(), str_starts_with(), str_ends_with()

PHP 8 では、str_contains() 関数を使用して、文字列が別の文字列の一部であるかどうかを判別できます。PhpStorm 2020.3 は、str_contains() に置き換えることができる strpos() の使用箇所に注意を向けます。

PhpStorm は、古い substr() 呼び出しを、よりわかりやすい新しい str_starts_with() および str_ends_with() 関数に置き換えることができる場所も強調しています。

Other PHP 8 features supported

サポートされているその他の PHP8 機能

  • 関数呼び出しおよびクロージャの use セクションの最後のパラメーターの後の末尾のコンマ。
  • キャプチャーしないキャッチは、例外オブジェクトが必要ない場合に例外をキャッチできます。
  • Throw を式として使用できるようになりました(つまり、アロー関数、合体演算子 ??、三元 / エルビス演算子 ?: で使用できます)。
  • オブジェクトからクラス FQN を取得するには、get_class($object) の代わりに $object::class を実行できます。これには Alt+Enter クイックフィックスを使用してください。

PHP8 の属性

Convert PHPDoc to native union types

PHP 8 では、PHPDoc 注釈に依存する代わりに、属性を使用して構造化された方法でメタデータを指定できます。

PhpStorm は、ハイライト、コード補完、使用箇所の検索、リファクタリング、属性を操作するための他のコーディング支援を提供します。また、属性が宣言され、有効に使用されていることを確認するためのインスペクションもあります。

PhpStorm 2020.3 には、IDE ですぐに利用できるいくつかの PHP8 属性が付属しています。また、composer パッケージ jetbrains / phpstorm-attributes(英語) で提供しているため、composer.json の依存関係として自由に追加してください。

#[Deprecated] attribute

#[Deprecated]

@deprecated PHPDoc タグと同様に、この属性を使用して、ソフトウェアの将来のバージョンで削除されるメソッド、関数、クラス、またはクラス定数をマークできます。

reasonreplacement を指定して、ユーザーがアップグレードが必要な理由を理解できるようにし、Alt+Enter クイックフィックスを使用してアップグレードを自動的に行えるようにします。

#[ArrayShape] attribute

#[ArrayShape]

この属性を使用して、オブジェクトのような配列のキーと値の型を定義します。これにより、PhpStorm から得られるコーディング支援と分析が改善されます。

注:1 行で記述されている場合、これは PHP7.4 以前でも機能します。
#[Immutable]

#[Immutable]

初期化後にオブジェクトを変更しようとする試みを防ぎたい場合は、オブジェクトまたはプロパティを #[Immutable] 属性でマークします。

これにより、プログラムの状態がより予測可能になり、デバッグが容易になります。

属性コンストラクターに渡される次の定数のいずれかを使用して、プロパティの書き込みスコープの制限を調整します: CONSTRUCTOR_WRITE_SCOPE , PRIVATE_WRITE_SCOPE , PROTECTED_WRITE_SCOPE

注:1 行で記述されている場合、これは PHP7.4 以前でも機能します。
#[Pure] attribute

#[Pure]

PhpStorm のコードフロー分析を改善するために、副作用を発生させない関数を #[Pure] としてマークします。IDE は、純粋関数の冗長な呼び出しをハイライトします。

関数を #[Pure] としてマークしたが、その本体で外部スコープから何かを変更しようとした場合、PhpStorm は安全でないコードをハイライトします。

このような PHP 内部関数( array_merge() など)はすべて、PhpStorm ですでにマークされています。

#[ExpectedValues] attribute

#[ExpectedValues]

この属性を使用して、関数がパラメーターとして受け入れる値と返すことができる値を指定します。これにより、コード補完が改善され、考えられるバグの検出に役立ちます。

#[ExpectedValues] はから expectedArguments() の高度なバージョンです .phpstorm.meta.php

#[NoReturn] Attribute

#[NoReturn]

スクリプトの実行を終了できる関数を #[NoReturn] 属性でマークして、より正確な制御フロー分析を取得します。

PhpStorm は、さらに明確に定義された分析を取得するためのクイックフィックスを使用して、属性を階層全体に伝播することを提案します。

#[Language] attribute

#[Language]

この属性を、RegExp、SQL などの別の言語のテキストを含む文字列パラメーターに追加します。これにより、追加の PhpStorm 機能が明らかになります。

Psalm と PHPStan のサポート

これらの静的アナライザーは両方とも、エディターで課題を強調するためのファーストクラスのツールとして PhpStorm 2020.3 で使用できます。composer.json の dev-dependencies として追加し、ツールの近くにあるレンチアイコンをクリックして、対応するインスペクションをオンにします。

PHPStan and Psalm

PhpStorm は @psalm-* タグ用のコード補完も提供し、特別なものとして扱うため、ハイライトや未定義のクラスなどの課題は発生しません。ほとんどの場合、タグから @psalm- プレフィックスを削除しても安全です。つまり、@psalm-return は単に @return にすることができ、@psalm-param@param にすることができます。

スカラー型、数値型、定数を持つ型など、多くの psalm 型がサポートされています。その結果、インスペクション、コード生成、補完など、型推論に依存するすべてのものがより正確になりました。

Xdebug 3

Xdebug 3

Xdebug 3 は、PHP デバッガーを新しく作り直したものです。それははるかに高速に動作し、セットアップが簡単です。

Xdebug 3 を構成するには、指定する必要があるのは XDEBUG_MODE=debug だけです。

Xdebug のデフォルトのデバッグポートが 9000 から 9003 に変更されました。移行を容易にするために、PhpStorm はデフォルトで両方のポートをリッスンします。Xdebug のポートおよびその他の設定は、環境設定 / 設定 | 言語 & フレームワーク | PHP | デバッグで調整できます。

Xdebug 3 の詳細については、アップグレードガイド(英語)を参照してください。

Code With Me

Collaborative development via Code With Me

PhpStorm 2020.3 は、共同開発とペアプログラミングのための JetBrains の新しいサービスである Code With Me をサポートしています。Code With Me を使用すると、IDE で現在開いているプロジェクトを他のユーザーと共有し、リアルタイムで一緒に作業することができます。

Code With Me の詳細については、これらの投稿(英語)を参照してください。

テールウィンド CSS

Quick access to settings of tools added as dependencies

PhpStorm は、TailwindCSS をより生産的に使用できるようになりました。

IDE は、Tailwind クラスを自動補完し、マウスオーバーで結果の CSS のプレビューを表示し、tailwind.config.js ファイルを使用して行ったカスタマイズをサポートします。

HTTP クライアント

Run Guzzle requests with the HTTP client

HTTP クライアントで Guzzle リクエストを実行する

Guzzle(英語) は、PHP で最も人気のある HTTP クライアントの 1 つです。PhpStorm 2020.3 では、実際のコードを実行せずに Guzzle リクエストをテストできます。

リクエストがサポートされている場合は、その横にガターアイコンが表示されます。それをクリックして、パラメーターが事前に入力された新しい HTTP スクラッチファイルを作成します。

リクエストをいじって、プロジェクトに .http ファイルとして保存します。

Export HTTP requests to cURL

HTTP リクエストを cURL にエクスポートする

HTTP リクエストから cURL 文字列を取得するには、HTTP リクエストエディターで Alt+Enter を押し、cURL に変換し、クリップボードにコピーを選択します。

ターミナルで、または選択した HTTP クライアントで cURL 文字列を使用できます。

エディター

Markdown editing and preview enhancements

Markdown の編集とプレビューの機能強化

Mermaid.js 図とチャートを IDE 内でレンダリングできるようになりました。環境設定 / 設定 | 言語 & フレームワーク | Markdown でこのサポートを有効にします。

プレビューペインの右上隅に自動スクロールプレビューボタンがあり、エディターとの同期スクロールを有効または無効にします。

Ctrl+Alt+L を使用してコードを再フォーマットするときに機能する人気のある Markdown コードスタイルプリセットを多数追加しました。設定は環境設定 / 設定 | エディター | コードスタイル | Markdown にあります。

Improved spelling and grammar checking

スペルチェックと文法チェックの改善

文法チェックエンジンは、より多くの言語をサポートし、より高品質の文法チェックを提供します。

間違いがハイライトされると、説明と提案された修正を含むポップアップが表示されます。

ハイライトされたテキストの上にキャレットを付けて Alt+Enter を押すと、以前のようにネストされたリストではなく、提案されたすべての置換がトップレベルに表示されます。

Split the editor with drag and drop

ドラッグアンドドロップでエディターを分割する

タブを画面の目的の側にドラッグして、複数のタブを並べて開きます。

分割モードでタブを開く別の方法は、プロジェクトビューまたは任意の検索ウィンドウで選択したファイルの Shift+Enter を押すことです。

Preview Tab

プレビュータブ

実際に開かなくても、特別なタブでファイルをプレビューできます。この機能を有効にするには、プロジェクトビューの歯車アイコンをクリックし、プレビュータブの有効化シングルクリックでファイルを開くの両方を選択します。プレビューしているファイルの編集を開始すると、タブは通常のファイルになります。

IDE

Search Everywhere improvements

どこでも検索の改善

どこでも検索ポップアップ(Shift+Shift)では、結果はわずかに異なる方法で表示されます。タイプごとにグループ化される代わりに、検索クエリとの関連性基づいてグループ化されるようになりました。

どこでも検索簡単な数学計算を実行することも可能になりました。いくつかの数値と数学演算子を入力して、計算結果をすぐに確認してください。これにより、電卓アプリに切り替えてフローを中断する必要がなくなります。

どこでも検索は、ブランチやコミットに関する情報など、Git の履歴を検索することもできます。

Web テクノロジー

WebStorm 2020.3 の すべての新機能と改善点は、PhpStorm 2020.3 でも、すぐに使用できるか、プラグインリポジトリ(英語)から無料のプラグインを使用して利用できます。

TypeScript in the Problems tool window

問題ツールウィンドウの TypeScript

TypeScript 言語サービスを問題ツールウィンドウに統合し、TypeScript ツールウィンドウを削除して、コード内の問題を 1 か所から簡単に確認できるようにしました。また、TypeScript ツールウィンドウ内で以前に使用可能だったアクションを、ステータスバーの専用ウィジェットに移動しました。

Create a React component from usage

使用箇所から React コンポーネントを作成する

コードに未解決の React コンポーネントがある場合は、キャレットをその場所に置き、Alt+Enter を押して、リストからクラス / 関数コンポーネントを作成するを選択します。IDE が関連するコード構造を作成します。

バージョン管理

Git stage support

Git ステージのサポート

PhpStorm 2020.3 には、Git ステージングエリアのサポートが付属しています。オンにするには、環境設定 / 設定 | バージョン管理 | Gitステージングエリアを有効化チェックボックスをオンにします。

Alt+0 を使用してコミットツールウィンドウに戻り、ステージングされたファイルとステージングされていないファイルを確認します。

それらの近くの + アイコンをクリックしてステージファイル

エディターの変更の近くにあるガターアイコンを使用して、 特定の行ステージングできます。

データベースツール

DataGrip 2020.3 の新機能をご覧ください–これらの機能はすべて PhpStorm でも利用できます。

SQL for MongoDB

MongoDB の SQL

SQL を使用して MongoDB データベースにクエリを実行できるようになりました。PhpStorm 2020.3 は、JOIN , WHERE , GROUP BY , HAVING , ORDER BY , LIMIT , OFFSET , などの句を含む SELECT クエリをサポートし、マップを除くすべての使用可能な MongoDB 関数 (英語)SQL for MongoDB について詳しく知りたい場合は、このブログ投稿をお(英語)読みください。

Couchbase support and new data extractors

Couchbase のサポートと新しいデータエクストラクター

PhpStorm は Couchbase クエリサービスをサポートするようになりました。また、2 つの新しいエクストラクターを導入しました。列をコンマ区切りの文字列にコピーできる一列SQL- 挿入 - 複数行は、複数の新しい行が挿入される単一の INSERT ステートメントを生成します。