PhpStorm 2019.2の新機能

2019年の2回目のメジャーアップデートで、超高度な生産性をご体験ください。

PHP 7.4の型付きプロパティ

PHP 7.4のリリースが11月末に予定されています。 PhpStormはそのサポートを早期から開始しています。これにより、お客様は十分時間をかけて移行計画を開始およびテストを行うことができます。 最も期待されている機能はおそらく、すでにPhpStorm 2019.2で完全にサポートされている新しい型付きプロパティでしょう。 新しいインスペクションは型違反をハイライト表示するため、クイックフィックスのAdd declared type for the field(フィールドに宣言された型を追加)を使用してコードベースを更新できます。 PhpStormは、コンストラクタ内のPHPDoc、デフォルト値、または引数の型宣言に基づいて型を自動的に検出します。

その場で重複を検索

その場で重複を検索

プロジェクトに同じコードブロックが何度も出現すると、変更に時間がかかる可能性があります。また、すべての出現箇所を更新し忘れた場合には新たなバグが発生することさえあります。 PhpStormは重複コードを簡単に見つけられるよう、それらをすぐにハイライト表示し、コード内で重複したコードが作成されるのを防ぎます。 既存の重複コードに遭遇した場合や、うっかり重複コードを作成してしまった場合、即座にその事が分かるようになりました! 新しいインスペクションはDuplicated code fragment(重複コードフラグメント)と呼ばれ、デフォルトで有効になっています。 このインスペクションを設定するには、Preferences | Editor | Inspections | Generalに移動してください。 Preferences | Editor | Duplicates配下で関連する設定を調整できます。 また、当然ながらCode → Run Inspection by Nameでいつでもプロジェクト全体(またはカスタムの範囲)で実行できます。

正規表現の注入

正規表現注入

正規表現は、文字列で検索と置換を行うのに非常に便利なツールです。 PhpStormで、PHPの正規表現を自動挿入できるようになりました。 つまり、コード内でpreg_*関数を使用する際は常に、このパターンがハイライトされ、正確性が検証されます。 さらに、IDEで直接パターンをテストできるようになりました! キャレットをパターンの上に移動してAlt + Enterキーを押すと、Check RegExpというクイックアクションが表示されます。

任意のリモートPHPインタプリタを介してComposerを実行

任意のリモートPHPインタプリタを介してComposerを実行

以前はComposerを実行するにはローカルのPHPインタプリタが必要でした。 それに関する問題は、ローカル環境が実際の生産環境を反映しないか、ローカルのPHPインタプリタがまったく存在さえしないかもしれないということでした。 PhpStorm 2019.2では、任意のリモートインタプリタを選択し、DockerVagrantSSH経由、あるいはその他ご希望のリモートインタプリタでComposerを実行できます!

環境設定 | 言語&フレームワーク | PHP | Composerに移動し、リモートインタプリタを選択し、ドロップダウンからインタプリタを選択するか、新しいインタプリタを追加します。

インテンションとクイックフィックス

文字列ジャグリングツールボックスの新しいインテンション

文字列ジャグリングツールボックスの新しいインテンション

PhpStormには文字列を操作するための複数のインテンション(Alt + Enter)が付属しています。 また、2019.2では新しいインテンションが追加されています。

sprintf式に新しいパラメータを挿入する必要がある場合は、そのパラメータを選択し、Extract selected string part as format function argument(選択した文字列部分をフォーマット関数の引数として抽出)インテンションを実行するだけで、PhpStormがパラメータに適切な場所を選択します。 これは連結にも機能します。

単一行リストを複数行に変換(およびその逆)

単一行リストを複数行に変換(およびその逆)

PSR-2によると、80文字を超える行はそれぞれ80文字以内の連続する複数行に分割する必要があります。 そのため、パラメータリストや配列が長くなりすぎた場合は、新しいインテンション(Alt+Enter)のSplit comma-separated values into multiple lines(カンマ区切りの値を複数の行に分割)を使用し、ワンクリックで分割できるようにしました。その逆のインテンションも、複数の項目を1行にまとめたい場合に利用できます。

Switch文用のインテンションとインスペクション

Switch文用のインテンションとインスペクション

既存の分岐をコピーしてから変更することで、より速く分岐を追加できるようになりました。 本文のないcase文でAlt+Enterを使用し、Copy ‘switch’ branch(switchの分岐をコピー)を選択できます。 コピーしたものを忘れずに修正してください。switchブロックに重複する分岐がある場合(冗長であるか、誤って書かれた可能性がある同じ本文がある場合)、PhpStormは警告します。 また、PhpStorm 2019.2では、コード内にdefault分岐がないswitch文がある場合、Alt+Enterを使用してこれを簡単にクイックフィックスすることもできます。

PHPTのサポート

PHPTのサポート

.phptファイルを使うと、シンプルに機能テストを書くのに約立ちます。 このフォーマットはPHPコアをテストするために使用されます。 PhpStorm 2019.2はphptファイルをサポートしています。サポート対象にはセクションとスクリプトの強調表示、対応するセクションへのPHPとINI言語の自動インジェクション、セクション名の補完、および外部セクションで参照されるファイルへのジャンプが含まれます。

Docker

Services ツールウィンドウ

Services ツールウィンドウ

Dockerは新しいServicesツールウィンドウに移動しました。 このツールウィンドウは、1箇所ですべての接続と実行中のプロセスを表示することを目的としています。 PhpStormでは現時点でDockerとDatabaseの接続がこのツールウィンドウに含まれています。

Dockerコンテナファイルシステムの参照

Dockerコンテナファイルシステムの参照

実行中のDockerコンテナのファイルシステムを表示できるようになりました。 このファイルシステムは新しく追加されたFilesタブに表示されます。

HTTPクライアント

HTTPクライアントのcURLフォーマット

HTTPクライアントのcURLフォーマット

単純にお使いのブラウザの開発者ツール、ドキュメント、端末などからcURLリクエスト文字列をコピーし、それをPhpStormの .http ファイルに貼り付けるだけで、それを完全なリクエストに展開することができます。 その後は、スマート補完を活用してリクエストを調整してください。

HTTPクライアントでクッキーを保存

HTTPクライアントでクッキーを保存

例えば、あるサービスで認証を1回リクエストしたあと、後続のリクエストで追加の権限を要求するエンドポイントを呼び出したいとしましょう。 これまでは、初回応答のCookieは失われていました。 しかし、今後はそのようなことはありません。PhpStormがすべてのCookieを保持し、次のリクエストでそれらを送出するようになりました。

ウェブテクノロジー

これまで同様、WebStorm のすべての機能と改善点は PhpStorm の初期状態で、またはプラグイン Marketplace で入手可能な無料のプラグインを使ってご利用いただけます。

JavaScriptとTypeScript用のスマートインテンション

JavaScriptとTypeScript用のスマートインテンション

新しい「Propagate to destructuring」インテンション(Alt+Enter)を使うと、追加の変数を別のデストラクチャリングに置き換えることができます。 デストラクチャリングを完全に削除するには、Replace destructuring with property or index access というインテンションアクションを使用してください。

条件文のブール式に不必要な部分がある場合、IDEが警告を表示し、その単純化方法を提案するようになりました。

JavaScrip向けにRenameリファクタリングを改善

JavaScrip向けにRenameリファクタリングを改善

JavaScriptまたはTypeScriptファイル内のシンボル名を変更する際、IDEが動的な使用箇所をグループにまとめ、デフォルトでそれらをリファクタリング対象から除外するようになりました。 これにより、リファクタリングの精度が向上し、リファクタリングプレビューツールウィンドウで正確に名前を変更すべきものをより細かくコントロールできるようになりました。

Vue.jsのサポート強化

Vue.jsのサポート強化

Vue.jsアプリケーションでVuetifyまたはBootstrapVueをお使いですか? これらや他のVueコンポーネントライブラリのコンポーネントとそのプロパティに対するコード補完がより正確になりました。 これは、当社がIDEでこれらのライブラリを処理するために採用した新しいアプローチにより実現しました。

20言語以上のシンタックスハイライト

20言語以上のシンタックスハイライト

PhpStorm 2019.2は、Ruby、Python、Goなどを含む20種類以上の異なるプログラミング言語用にすぐに使えるシンタックスハイライトをご提供します。 ハイライト表示は統合されたTextMateバンドルに基づいて行われるため、追加の言語が必要な場合は、その言語に対応するバンドルをダウンロードしてIDEにインポートしてください。

EditorConfig

EditorConfig

PhpStormは初期状態で .editorconfig ファイルをサポートしています! 必要な数だけこのファイルを使用できます。 任意のフォルダにこのファイルを作成すると、指定したコードスタイル設定がそのフォルダ内のファイルにのみ適用されます。

EditorConfig標準のすべての標準プロパティに加えて、PhpStorm固有のコードスタイルオプションも指定できるようになりました。 これまでになく簡単にチーム全体で共通のコードスタイル標準を定義できるようになりました。

シェルスクリプト

シェルスクリプトのサポート

このリリースでは単語やパスの補完、クイックドキュメント、Renameリファクタリングなど、シェルスクリプト向けの豊富な編集サポートを提供しています。 シェルスクリプトを実行するための実行構成を作成することもできます。

さらに高度なシェルスクリプトをサポートするため、PhpStormをいくつかの外部ツールと統合しました。 今後はAlt+Enterを押して、Shellcheckを使用してスクリプト内のエラーを検出して修正し、mvdan/sh を使用してシェルスクリプトを適切にフォーマットし、Explainshell を使ってコマンドの完全な説明を取得できます。

バージョン管理

初期状態でIgnoreファイルを処理可能

VCSツールウィンドウのProject ReeまたはLocalの変更タブから無視ファイルのリストにファイルを追加できるようになりました。 .gitignore を編集したい場合は、エディタでパスの補完を利用できます。

ダイアログのない新しいコミットフロー

ダイアログのない新しいコミットフロー

PhpStorm 2019.2は、GitまたはMercurialを使用するプロジェクトに大きな変化をもたらします。 Version ControlツールウィンドウのLocal Changesタブからファイルをコミットできるようになりました。 コミットダイアログがIDEの他の要素を妨げることはないため、そこで変更されたファイルを確認し、必要に応じて変更できます。 この機能を試すには、Preferences | Version Control | Commit DialogCommit from the Local Changes without showing a dialog(ダイアログを表示せずにローカルの変更からコミットする)チェックボックスを選択してください。

忘れられているファイルを通知

忘れられているファイルを通知

複数のファイルをコミットする際、PhpStorm 2019.2は現在コミットしようとしているファイルとよく一緒にコミットされる他のファイルの変更を検出すると警告を表示します。このため、コミット漏れが発生することはありません。

VCSログタブのカスタマイズ

VCSログタブのカスタマイズ

Version ControlツールウィンドウのLogタブに表示したい列を選択できるようになりました。 瞳のアイコンをクリックし、「Show Columns」(列を表示)を選択してから、表示したい列(作者、日付、コミットハッシュ)を選択します。

データベースツール

全文検索による総合的な結果の提供

全文検索による総合的な結果の提供

必要なデータを、その正確な位置が分からなくても検索できるようになりました。 検索対象のデータソースまたはデータソースグループを右クリックし、全文検索を選択するか、Cmd+Alt+Shift+Fを押してください。

結果が絞り込まれ、データが見つかった場所の文字列だけが表示されます。 列が多すぎてデータの位置を特定できない場合は、データエディタでテキスト検索を使用してください(Cmd+F)

検索およびナビゲーションでデータソース別に絞り込み

検索およびナビゲーションでデータソース別に絞り込み

似たような項目が多すぎるため、GoToポップアップでオブジェクトの位置を特定するのが容易ではない場合があります。 PhpStorm 2019.2では検索する場所(特定のデータソース内、またはソースグループ内)を選択できます。 Find In Pathでも同様に機能します。 これは、他のオブジェクトのDDL内のソースコードを探す場合に非常に役立ちます。