PhpStorm 2020.1の新機能

このメジャーアップデートで、 さらなる生産性の向上をご体験ください。

すぐに使えるcomposer.json のサポート

簡単な依存関係の管理: すべてのアクションを composer.json ファイルのエディタから直接実行できるようになりました。

アロー関数

依存関係の管理

パッケージの操作は composer.json ファイルの中からの方がはるかに簡単に行えるため、旧型の Manage dependencies ダイアログは非推奨機能としました。

新しいパッケージを追加するには、require(-dev) セクションでそのパッケージの名前を入力するか、Ctrl+Space を押して、表示される提案一覧から必要なものを選択できます。

特定のパッケージの使用可能なバージョンもすべて表示されます。

新しい composer.json ファイルを作成する

新しい composer.json ファイルの作成

新規プロジェクトを開始するときは、IDE のテンプレートを使って composer.json ファイルを作成できます。 プロジェクトツリーを右クリックし、New -> composer.json File を選択します。

パッケージの更新とインストール

パッケージの更新とインストール

composer.json で指定されていても、未だインストールされていない依存関係がある場合は、PhpStorm がそれを検出し、ハイライトします。

そのインストールは、Alt+Enter を押し、Update package もしくは Update all packages を選択します。

ファイルとフォルダへの移動

ファイルとフォルダへの移動

パッケージの上で Ctrl+Click を使えば、プロジェクトツリーのベンダーディレクトリにあるそのパッケージのフォルダが PhpStorm でハイライトされます。 ファイルの場合は、この操作によりそのファイルがエディタで開きます。

Ctrl+Click または Ctrl+B を使って、composer.json にあるリンクをブラウザで開くこともできます。

スクリプトの作成と実行

スクリプトの作成と実行

スクリプトのセクションの各エントリーには、そのガターの中に再生アイコンがあり、それをクリックすればスクリプトを即座に実行できます。

新規のスクリプトエントリーを追加する場合、スクリプトの参照、ベンダー / bin ディレクトリのバイナリファイル、およびプロジェクトソースのずべての PHP ファイルに対して自動補完機能が使えるようになりました。

PCOV と PHPDBG のコードカバレッジ

PSR-12

Xdebug に加え、PHP の軽量拡張機能 krakjoe/pcov もしくは組み込み型の PHPDBG を使えば、かなりスピーディにカバレッジレポートを生成できるようになりました。

テスト用の 実行構成を作成することもできます。 Run configurations(実行構成)設定には、Xdebug、PCOV、PHPDBG の中から優先するカバレッジドライバーを選択するドロップダウンメニューがあります。

優先ドライバーを選択し、メインツールバーの Run with Coverage ボタンをクリックしてから、カバレッジの結果を確認します。

PHPUnit Toolbox

WSLインタープリタ追加

PhpStorm 2020.1 は最新の PHPUnit バージョンに素早く簡単にアップグレードするためのツールを提供しています。

すべての非推奨機能がエディタ内でハイライトされます。 非推奨アイテムにカーソルを合わせ、 Alt+Enter を押し、表示される一覧から好みのクイックフィックスを選択します。 もしくはエラー説明ウィンドウの下部から選択します。

PHPUnit の新規テストクラスを素早く作成するには、クラス名の上で Alt+Enter を押して Create new PHP Test インテンションを使用できるようになりました。

PHP 型推論の改善

PhpStorm の中核的機能である型推論エンジンに一部便利な改善が加えられました。

型付きプロパティ

冗長な @var tag の検出

型情報のある @var タグが冗長で、かつ PhpStorm が既にその変数の正しい型を知っている場合、そのタグはハイライトされます。 それは Alt+Enter を押し、Remove @var のクイックフィックスを使えば削除できます。

アロー関数

より正確な null の追跡

null 可能性の追跡は困難なタスクで、以前は PhpStorm がそれを検出できない箇所がありました。 2020.1 バージョンでは、このような問題はもう発生しません。 PhpStorm を使えば、変数が null であるかどうかが分かるほか、null 可能性に関する問題を避けられます。

数値リテラルの区切り記号

array_map/array_filter のコード補完

array_map() および array_filter() 関数に渡されるクロージャの中にあるパラメータ変数に使用できる完全な補完オプションが導入されました。

ネストした三項演算子

ジェネリック以外の配列の型を初期化子から推論する

一連の既存のアイテムを持つ配列を反復処理する場合は、PhpStorm が自動的にその型を伝達するので、追加の @var を使用して型を指定する必要はなくなりました。

その他の改善点

ML(機械学習)を使ったコード補完のランク付け

ML(機械学習)を使ったコード補完のランク付け

PHP を対象に機械学習を使ったコード補完のランク付けオプションは以前バージョン v2019.3 にて導入されていますが、今回の機能では、コード補完ポップアップで要素の順番を入れ替えることでコード補完が改善されるため、最も関連性の高いアイテムが一番上に来るようになっています。

デフォルトで、ML を使ったコード補完は無効になっています。 有効にするには、Preferences/Settings | Editor | General | Code Completion で、Rank completion suggestions based on Machine Learning と PHP のチェックボックスを選択します。

Move method(メソッドを移動)リファクタリング

Move method(メソッドを移動)リファクタリング

メソッドを 1 つのクラスから別のクラスに移動する操作は簡単に 1 つのアクションで実行できるようになりました。

メソッドにカーソルを合わせて、F6 (または Ctrl+T3) を押します。 それから、移動先のクラスを選択すれば完了です。

型の注釈だけが付いた PHPDoc を削除する

型の注釈だけが付いた PHPDoc を削除する

PHPDoc ブロックに型付きの @param タグしかない場合は、パラメータに対するネイティブな型宣言を優先し、PHPDoc を完全に削除できます。

Alt+Enter を押し、Remove redundant PHPDoc comment のクイックフィックスを選択します。

冗長な三項式を見つける

冗長な三項式を見つける

PhpStorm は、短く簡潔にできる三項式をハイライトします。 クイックフィックス (Alt+Enter) を適用した後は、シンプルで同等な式に置換できます。

冗長な pass-by-ref を取り除く

冗長な pass-by-ref を取り除く

pass-by-reference (参照渡し) を使用すると予期せぬ結果につながる場合があります。 PhpStorm 2020.1 は、不要に pass-by-reference (参照渡し) と指定されているパラメータを検出し、ハイライトします。

これは foreach ループの冗長な by-ref 値に対しても機能します。

メタデータ

特殊ファイル .phpstorm.meta.php に情報を追加して、PhpStorm の「コード認識」を拡張する方法があります。 この領域には複数個の改善がほどこされました。

override、map、type 関数のパラメータインデックス

override、map、type 関数のパラメータインデックス

以前は、override()map()、および type() ディレクティブを使っても、関数の最初のパラメータの動作しか調整できませんでした。 PhpStorm 2020.1 では、これが修正され、明示的にパラメータのインデックスを指定できるようになりました。

アロー関数

__get 関数を使ったプロパティへのアクセスのサポート

マジックメソッド __get() 経由でオブジェクトを受け取る場合、おそらく型情報は失われてしまうでしょう。 @var@property タグを使う代わりに、.phpstorm.meta.php ファイルを使ってこの情報を指定できるようになりました。 これは事前に型が分かっていない場合でも機能します。

カスタム出口点

カスタム出口点

PhpStorm では、die()exit() 関数、および例外を投げるすべての関数が終了コールとしてみなされます。 しかしアプリケーションでは、例えば dd() といったデバッグ関数のように、「出口点」としてみなす必要があるカスタム関数が他にもいつくか存在するかもしれません。 今回のバージョンでは、すべての関数を出口点として指定できるようになりました。

ArrayAccess オブジェクトのキーに対する補完

ArrayAccess オブジェクトのキーに対する補完

メタデータにより、オブジェクトを他のオブジェクトの配列コンテナとして使用したい場合でも、コード補完へのアクセスを維持することは既に可能になっています。 しかし、キーに対する補完機能は存在していませんでした。 2020.1 にはこの機能が追加されています。

メタデータをオーバーライドする関数のガターアイコン

メタデータをオーバーライドする関数のガターアイコン

最後の紹介になりましたが、override()exitPoint()、または expectArguments() ディレクティブにより、.phpstorm.meta.php ファイルを使って動作が変更されている場合は、それがエディタに表示されるようになりました。 プロジェクトによってそのようなメタファイルの数は異なるため、アイコンをクリックすれば、その特定の箇所で使用されているファイルが開きます。

HTTPクライアント

HTTP クライアントの PHP デバッグ機能

HTTP クライアントの PHP デバッグ機能

ウェブアプリケーションや API エンドポイントを開発するとき、PhpStorm のウィンドウから直接、簡単にデバッグを開始できるようになりました。

これを行うには、.http ファイルを作成、または開き、リクエストを追加してから、Alt+Enter インテンションを使って PHP Debug を実行します。これにより XDEBUG_SESSION クッキーがリクエストに追加され、Xdebug のブラウザ拡張機能と同じように機能します。

ウェブテクノロジー

WebStorm 2020.1すべての新機能と改善は、PhpStorm 2020.1 ですぐに使える状態になっているか、プラグインリポジトリから無料のプラグインをインストールしてご利用いただけます。

JavaScriptとTypeScriptの新しいスマートインテンションとインスペクション

JavaScriptとTypeScriptの新しいスマートインテンションとインスペクション

新しいスマートインテンションとインスペクション (Alt+Enter) を使って、よりスピーディにコーディングしましょう! 例えば、JavaScript と TypeScript の最新バージョンに導入された構文である、オプションの chaining および / または nullish coalescing (null合体演算子) に既存のコードを素早く変換することができます。

Vue.js を対象とした Vuex および Composition API サポート

Vue.js を対象とした Vuex および Composition API サポート

Vuex ライブラリを対象に用意されているサポートや Vue 3 の Composition API を使用すれば、Vue.js の素晴らしいアプリケーションをよりスムーズに構築できます。

Prettier を保存時に実行

Prettier を保存時に実行

新機能の Run on save for files オプションを使用すると、WebStorm は IDE 設定で指定されたファイルやプロジェクトで編集されたファイルが保存されると同時に、それらすべてのファイルに対して Prettier のフォーマットを適用します。File Watchers やサードパーティのプラグインは不要になりました。

IDE

スマートな文法・スペルチェッカー

スマートな文法・スペルチェッカー

高度な文章校正と文法チェック機能を提供するプラグイン Grazie は初期状態で使用できるようになっています。 入力ミスや間違いが即座にハイライトされるので、コーディングを修正するときと同様にクイックフィックスアクションで修正できます。

Markdown ファイルのスペルチェック機能はデフォルトで有効になっています。 PHPDoc のコメント、HEREDOC/NOWDOC の文字列、または PHP ファイルの文字列リテラルに対してチェックを実行するには、Preferences/Settings | Editor | Proofreading | Grammar でそれを有効にする必要があります。

より綿密な文法チェックを実行する場合は、Preferences/Settings | Editor | Inspections -> ProofreadingGrammar インスペクションを有効にします。

PhpStorm を使ってちょっとした編集を行う

PhpStorm を使ってちょっとした編集を行う

新しい LightEdit モードを使用すれば、PhpStorm をメモ帳スタイルの軽量エディタとして使って、IDE を完全に開かずに素早くファイルに変更を加えることができます。

それを試すには、ファイルをコマンドライン (詳しい手順は Working with IDE features from command line を参照してください) もしくは、お使いの OS システムのファイルマネージャーから開いてください。 PhpStorm が稼働中でない場合、ファイルは LightEdit モードで開きます。

日付形式のカスタマイズ

ターミナルセッションを上下または左右に分割する

任意の数のターミナルセッションを一度に開き、タブを切り替えずにそのすべての出力を同時に確認できるようになりました。

分割ターミナルセッションを作成したり、ナビゲートしたり、閉じたりするには、ターミナルからコンテキストメニューを呼び出します。

統合 SSH 構成

統合 SSH 構成

すべての SSH 接続は Preferences/Settings | Tools | SSH Configurations の 1 か所で設定できるようになりました。

これにより、1 か所で接続を確立し、デプロイ構成に使用したり、SSH を介したリモート PHP インタプリタ用とした使用したり、SSH をとして使用したりするなど、IDE の好きな場所で再利用できるようになりました。

外観

更新されたライトテーマ

更新されたライトテーマ

ライトテーマはすべてのオペレーティングシステムで統合され、IntelliJ Light という名前に変わりました。 以前のテーマに戻る場合は、 Preferences/Settings | Appearance & Behavior | Appearance | Theme で切り替えてください。

日付形式のカスタマイズ

新しいデフォルトのフォント

JetBrains Mono は無料かつオープンソースの書体で、開発者のためにコードを読みやすくすることに重点を置いて開発されています。 そして今回、エディタのデフォルトのフォントになりました。

完全集中できる開発モード

完全集中できる開発モード

新しい Zen Mode は Distraction Free Mode と Full Screen Mode を組み合わせ、コーディング作業に没頭できるようになっています。

Zen Mode を試すには、View | Appearance | Enter Zen Mode から有効にしてください。

バージョン管理

Git リベース用に改良されたダイアログ

Git リベース用に改良されたダイアログ

Interactively Rebase from Here ダイアログは真に対話的な機能となり、以下に示すリベースプロセスの全側面をコントロールできます:

  • ブランチ内の各コミットに対して実行するアクションを選択してください。
  • 適用済みのアクションを示すグラフをチェックできます。
  • コミットの詳細を表示する。
  • diff を確認し、必要に応じて変更内容をレビューまたはリセットできます。
任意のブランチをプッシュ

コミットフローの変更内容

コミットフローを合理化するため、コミットに関連するすべてのタスクを処理する新しい Commit ツールウィンドウ を開発しました。 すべての新ユーザーに対しデフォルトで有効化されています。

これを試してみたいと思われる既存のユーザーの方は Preferences/Settings | Version Control | CommitUse non-modal commit interface を選択してください。

データベースツール

DataGrip チームは PhpStorm のデータベースツールにとても便利な改善を加えています。 「DataGrip 2020.1の新機能」をご覧ください。

Excelへのエクスポート

Excelへのエクスポート

ついに、クエリの結果やテーブルを Excel ファイルにエクスポートできるようになりました。

エディタ内で結果を確認

エディタ内で結果を確認

結果をコードエディタ内で確認できるようになりました。 この機能を試すには、Preferences/Settings | Database | General | Show output results in the editor オプションにチェックを入れてください。

Run configurations(実行構成)

Run configurations(実行構成)

実行構成のコンセプトは PhpStorm ユーザーに親しみのある内容となっています。 PHP スクリプト、テスト、HTTP リクエストに加えて、BD クエリも実行できるようになりました。

その他の改善:

  • @deprecated とマークされているすべてのメンバとアイテムは、Structure ツリービューに 取り消し線として表示されます
  • 右中かっこや左中かっこに素早くジャンプするための新しいアクションができました。
  • Twig のレクサー構文はカスタマイズできるようになりました。
  • Config ファイルのパスが変更されました – 詳しく見る
  • 実行構成は .idea フォルダの外で保存し、バージョン管理から共有できるようになりました。 Run/Debug Configurations ダイアログを開き、Store as project file オプションにチェックを入れます。