PhpStorm 2019.3の新機能

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

PHP 7.4 サポート

PHP 7.4がリリースされ、PhpStorm 2019.3はそのすべての新機能を完全にサポートしています。 また、非推奨の機能をハイライト表示するインスペクションとコードをアップグレードするためのクイックフィックスも提供します。

型付きプロパティ

型付きプロパティ

2019.2のリリースでは型付きプロパティを新たにサポートしました。 バージョン2019.3では、クイックフィックスがあらゆるケースに対応し、Alt-Enterを押してAdd declared type for the fieldを選択することで、型宣言を素早く簡単に追加できるようになりました。 PhpStormは、コンストラクタ内のPHPDoc、デフォルト値、または引数の型宣言に基づいて型を自動的に検出します。

アロー関数

アロー関数

PhpStorm は、PHP 7.4 の 1 行でラムダ関数 (無名関数) を書ける新しい簡潔な構文をサポートしています。 PhpStorm では、外部スコープの変数に対して補完機能を使用できるほか、ワンクリックで宣言箇所に移動できます。

古い構文を新しく簡潔な1行表記のラムダ関数に変換するクイックフィックスも利用できます。 無名関数の上でAlt-Enterを押し、Convert closure to arrow functionを選択するだけです。

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

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

PHP 7.4では長い数値にアンダースコアを区切り記号として追加し、コードを視覚的に整形して可読性を向上させることができます。

長い数値を見かけたらその上にキャレットを移動させ、Alt+Enterを押してからAdd number separatorsを選択してください。 これにより、10進数の場合は3桁ごとに、16進数・2進数・8進数の場合は4桁ごとにアンダースコア '_' が追加されます。

ネストした三項演算子

ネストした三項演算子

PHP 7.4ではネストした ? : 演算子の左結合が非推奨となっています。 つまり、ネストした三項演算子の使用を完全に廃止するか、必要に応じて丸括弧を使用して計算順序を明確に宣言する必要があります。

PhpStorm 2019.3は非推奨の式をハイライト表示し、その動作を明確化するためのクイックフィックスを提供します。

非推奨機能

非推奨機能

このPHPのリリースでは新機能が追加されているだけではなく、多数の古い機能が非推奨となりました。

PhpStorm 2019.3には対応するインスペクションが実装されており、注意を要するコードをハイライト表示します。 可能な場合は、非推奨の動作に対して自動的にクイックフィックスを適用することもできます。

共変戻り値と反変パラメータ

共変戻り値と反変パラメータ

PHP 7.4では型システムに影響を及ぼすものも含め、複数の矛盾が解消されています。 親クラスを継承するメソッドを使用する際、戻り値の型をより明確に定義しながらも、そのパラメータの型はあまり明確にする必要がなくなりました。

PSR-12

新しいPSR-12コードスタイル標準は、これまでのPSR-2に新しいPHPの機能に対応した新しいルールと新しいガイドラインを盛り込んだものです。 PhpStorm 2019.3にはPSR-12のコードスタイルがあらかじめ定義されており、同スタイルへの切り替えを促します。 Preferences | Editor | Code Style | PHPSet from…アクションを使って手動で切り替えることもできます。

PhpStormはPSR-12コードスタイルに対応したインスペクション一式を有効化し、特定ルールへの違反をチェックすることも提案します。

コードの再フォーマットはCmd+Alt+Lを押してエディタ内で実行するか、コミット前に実行できます。 Code > Code Cleanup...を使用すると、プロジェクト全体やフォルダ全体に対して再フォーマットを実行することもできます。

WSL

WSLインタープリタ追加

Windows Subsystem for LinuxはWindows 10でLinuxのバイナリ実行可能ファイルをネイティブに実行するための互換性レイヤーです。 PhpStormがWSL環境での開発に対応しました。これにより、Windowsマシン上でIDEを起動しながらもWSL/Linuxを開発のターゲットにすることができます。 WSLのリモートPHPインタプリタを指定し、それをスクリプトやテスト、Composerコマンドの実行やデバッグに利用できます。

PHPのテスト実行構成でインタプリタを指定可能

PHPのテスト実行構成でインタプリタを指定可能

これまでテスト実行構成はデフォルトプロジェクトのPHPインタプリタを介してしか実行できず、やや不便でした。

今後はそのような不便は生じません。 PhpStorm 2019.3では設定した任意のインタプリタ(DockerVagrantSSH経由、WSL、あるいはその他ご希望のもの)を選択し、それを使用してテストを実行できます!

その他の改善点

PHPDocの改善

PHPDocの改善

これまでのPhpStormではPHPDocブロック全体が単色で表示され、通常のコメントと同じスタイルが適用されていました。

今回のリリースでは、Docブロック内のすべての型、変数、パラメータ、メソッド、プロパティがハイライトされるようになりました。 コメント内にHTMLコードがある場合も、同様にハイライトされます。

$this変数のフォントと色

$this変数のフォントと色

Preferences | Editor | Color Scheme | PHP | Identifiersを開いて必要なカスタマイズを行い、$thisが出現する箇所のフォントの書体と色を選択できます。

Markdownおよび文字列内のPHPハイライト

Markdownおよび文字列内のPHPハイライト

PhpStorm 2019.3では、‘php’を情報文字列として使用している場合にMarkdownファイル内のPHPコードブロックが自動的にハイライトされます。 PHPと同様に動作するものの開始タグを必要としないInjectablePHPという特別なPHPのダイアレクトを使用し、その他の文字列に対してもPHPをハイライトさせることができます。

if-else用のコンテキストアクション
Extract assignment(代入を抽出)

Extract assignment(代入を抽出)

Merge nested conditions(ネストされた条件をマージ)

Merge nested conditions(ネストされた条件をマージ)

Merge else followed by if(ifが続くelseをマージ)

Merge else followed by if(ifが続くelseをマージ)

HTTPクライアント

プロのようにリクエストを行うためにPhpStormでのHTTPクライアントの使用に関する短いビデオチュートリアルをご覧ください。

Editorツールバー

Editorツールバー

.httpファイルを開いたときに、以下のような一般操作すべてに素早くアクセスできるツールバーが表示されるようになりました。

  • Add request(リクエストを追加) – テンプレートからリクエストを作成
  • Convert from cURL(cURLから変換) – エディタにcURLを貼り付けてリクエストを作成
  • Open Log(ログを開く) – 送信済みのリクエストをリスト表示 / 応答を比較
  • Examples(例) – 便利なHTTPリクエストのコレクションを参照
動的変数

動的変数

リクエストで使用できる動的変数を3つ追加しました。

  • $uuid – 新しいUUID-v4を生成します
  • $timestamp – 現在のUNIXタイムスタンプ
  • $randomInt – 0~1000のランダムな数字

これらの変数を必要な場所に挿入するには、中括弧2つを使用してください。

すべて実行

すべて実行

1つの.httpファイル内に複数のリクエストを書き込めるようになりました。 これは、先行するリクエストの結果に応じて後続のリクエストが決まるような連続リクエストを発行する必要がある場合に非常に便利です。

これまではそれぞれのリクエストを個別に実行する必要がありましたが、PhpStorm 2019.3ではすべてのリクエストをワンクリックで実行できるようになりました!

リクエストの折りたたみ

リクエストの折りたたみ

ボディ部の大きなリクエストを送信する際、マルチパートフォームデータや多数のヘッダーなどを折りたたみ、エディタの表示をすっきりさせることができます。

ガター内の矢印アイコンをクリックし、先頭行やボディ部のみを残してリクエスト全体を折りたたむことができます。

ウェブテクノロジー

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

より高度なVue.jsサポート

より高度なVue.jsサポート

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

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

CDN上のCSSライブラリの補完

CDN上のCSSライブラリの補完

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

新しいシンボル名の提案

新しいシンボル名の提案

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

バージョン管理

VCSとGitHubのプロジェクトを複製する新しいUI

VCSとGitHubのプロジェクトを複製する新しいUI

IDEのウェルカム画面かVCSメニューからバージョン管理システムのプロジェクトを複製する際には、新しいGet from Version Controlダイアログが表示されます。

この再設計により、GitHubアカウントからプロジェクトを取得しやすくなっていることを願っています。 また、ダイアログ左側でGitHubを選択し、そこからアカウントにログインできるようにしました。

任意のブランチをプッシュ

任意のブランチをプッシュ

メニューでブランチを選択し、Pushアクションを使用すると呼び出せるBranchesポップアップから任意のブランチの変更を直接プッシュできるようになりました。

これまでは現在作業中のブランチの変更しかプッシュできず、他のブランチをプッシュするにはいったん対象のブランチに切り替えたうえで変更をプッシュしなければなりませんでした。

日付形式のカスタマイズ

日付形式のカスタマイズ

バージョン履歴ログを調査する際、dd/mm/yyyyやmm/dd/yyyy(米国の場合)のような形式で時間を表示すると情報を理解しやすくなる場合があります。

PhpStorm 2019.3では、VCS AnnotateアクションやVCS Logアクションの日付形式を設定することができます。

データベースツール

弊社DataGripチームメンバーの尽力により、PhpStormのデータベースツールに素晴らしい改善が行われました。 「DataGrip 2019.3の新機能」をご覧ください。

MongoDBのサポート

PhpStormを含むJetBrainsの各種IDEで、これまでご要望の多かったMongoDBのサポートがついに実装されました。 データベースエクスプローラー内でコレクションやフィールドを確認し、データをツリービューで表示できます。 また、カラム別のソートや値の絞り込みを実行できるほか、IDE内から直接クエリを実行を実行できます。

その他の改善:

  • 起動を高速化しました。ウェルカム画面が表示され、プロジェクトがインデックス化された状態でIDEが起動するまで長時間待たされることがほぼなくなりました。
  • プラグイン管理を改善しました。テーマプラグインを追加/削除する際にIDEを再起動する必要がなくなりました。
  • プラグインによるKubernetesのサポートを強化しました。
  • 高コントラストスクロールバーを実装しました。Preferences/Settings | Appearance & Behavior | Appearance で “Use contrast scrollbars” を有効にすることで設定できます。
  • Find アクションを使用する際に選択した領域を検索できるようになりました。
  • スムーズマウススクロールを実装しました。Preferences | Appearance & Behavior | Appearance の Smooth scrollingで設定できます。