PhpStorm 2019.3の新機能

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

PHP 7.4 サポート

PHP 7.4 is now released, and PhpStorm 2019.3 fully supports all its new features. また、非推奨の機能をハイライト表示するインスペクションとコードをアップグレードするためのクイックフィックスも提供します。

型付きプロパティ

型付きプロパティ

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

アロー関数

アロー関数

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

古い構文を新しく簡潔な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

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でも初期状態で、またはプラグインリポジトリで入手可能な無料のプラグインを使って利用できます。

より高度な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

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で設定できます。
PhpStorm 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を実行

これまではComposerを実行するのにローカルのPHPインタプリタが必要でした。 そのため、ローカル環境が実際の本番環境を反映していない、あるいはローカルのPHPインタプリタが1つも存在しない可能性があるという問題がありました。 PhpStorm 2019.2では、任意のリモートインタプリタを選択し、DockerVagrantSSH経由、あるいはその他ご希望のリモートインタプリタでComposerを実行できます!

Preferences | Languages & Frameworks | PHP | Composerに移動し、Remote Interpreterを選択し、ドロップダウンからインタプリタを選択するか、新しいインタプリタを追加してください。

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

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

String Juggling Toolboxの新しいインテンション

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ファイルはシンプルに機能テストを書くのに役立ちます。 このフォーマットは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の初期状態で、またはプラグインリポジトリで入手可能な無料のプラグインを使ってご利用いただけます。

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

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

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

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

JavaScript向けに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 Logタブのカスタマイズ

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

データベースツール

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

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

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

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

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

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

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

PhpStorm 2019.1の詳細

TwigテンプレートとBladeテンプレートのデバッグ

厄介なバグに直面したり、コードベースを深く掘り下げる際に、デバッグは非常に効果的です。 ですが、コンパイルされたテンプレートの機械生成コードを調査するのは悪夢のようなものです。 PhpStormとXdebugを使用し、これら2つの一般的なテンプレートエンジンのコンパイル前のファイル(.twigと.blade.php)でステップデバッグを実行できるようになりました。 ここではコンテキスト、ローカル変数とグローバル変数の確認、ウォッチの追加、ステップバイステップ実行など、あらゆるデバッグのメリットをご利用いただけます。

デッドコードの特定

レガシーなコードベースで作業中で、整理整頓を行いたい場合は、まず最初にデッドコードを削除することをお勧めいたします。 PhpStormは冗長コードを検出し、一度も使用されていないと思われるクラス、クラスメンバー、および関数をハイライトするようになりました。 Unused declaration(未使用宣言)インスペクションでは、マジックメソッド経由で呼び出されるものなど、動的なコードの使用箇所も考慮されます。 プロジェクト全体のレポートを確認するには、Code -> Inspect Code…を選択してください。

リファクタリング、インテンション、クイックフィックス

String Concat To Strintf(Strintfへの文字列連結)

String Juggling Toolbox

文字列操作用に複数の新しいインテンションを追加しました。 文字列の連結を文字列への埋め込みに変換したり、連結または埋め込みをsprintf呼び出しに変換したり、連結された文字列をクリップボードにコピーしたりなど、多くのことができます。 文字列でAlt+Enterを押すと、利用可能なアクションが表示されます。

VCSの改善

未使用変数の削除

PhpStorm 2019.1では、代入またはクロージャのuseリストに表示される未使用の変数を削除を支援する新しいクイックフィックスが導入されました。 このクイックフィックスは非常にスマートで、代入式に副作用が生じる可能性がある状況を検出できます。

Move To Class(クラスに移動)リファクタリング

Move To Classリファクタリング

新しいMove to Classリファクタリングを使用すると、関数や定数をそれらが論理的に属するクラスに移動できます。また、PhpStormはそれらすべての使用箇所を見つけて修正します。 Structure(構造)ツールウィンドウで複数の関数を選択して同時に移動できます。

Method May Be ‘static’(メソッドが「静的」の可能性)インスペクション

Method May Be ‘static’インスペクション

クラスにインスタンス参照を一切使用しないメソッドがある場合、PhpStormはそれを検出し、便利なクイックフィックスを提供します。該当メソッドでAlt+Enterを押し、静的に変更できます。 使用箇所はすべて自動的に更新されます。

Docker

コンテナの再利用

Dockerコンテナの再利用

Docker Composeベースのインタプリタの場合、コンテナの実行にdocker-compose runまたはdocker-compose execのいずれかを選択できるようになりました。 テストを実行するたびに再起動したくない重いコンテナがある場合、docker-compose execオプションを選択してそれを再利用することができます。 あるいは、軽いコンテナやデーモンモードで動作していないコンテナ(つまり、起動直後に停止するもの)に対してdocker-compose runを使用することもできます。

PHP

自動補完の改善

特別なファイル(.phpstorm.meta.php)を利用することで、PhpStormがより適切な引数を提案したり、値を返したり0>できるようになりました。 これは、整数や文字列のような単純な型ではなく特定の定数一式の候補を見たい場合に役立ちます。 または、ある関数が特定の定数を返すことを期待する場合に役に立ちます。 独自の .phpstorm.meta.php ファイルをご用意いただくことで、あなたのライブラリやプロジェクト用にPhpStormの提案内容を改善することもできます。

インポートの改良

インポートの改善

FQNをインポートおよび使用する名前空間に関連するインスペクションとインテンションアクションを改良いたしました。 これは主に、修飾子の使用をできるだけ回避することを目的しています。 PhpStormで可能な場合に冗長な修飾子を削除したり、対応する「use」インポート文に置き換えたりできるようになりました。 また、コードをファイルに貼り付けると、PhpStormは既存のエイリアスの再利用を要求します。

コードのクリーンアップ

PhpStorm 2019.1では、Code CleanupツールにPHP専用のインテンションが備わっています。これは、完全クラス名の出現箇所を最適化できるものです。具体的には、「use」文を追加したり、完全クラス名の出現箇所から不要な部分を削除したりします。 また、PHP CS FixerかPHP_CodeSnifferのphpcbfを使用し、コードスタイルの問題を自動的に修正することもできます。 VCSコミットの前にクリーンアップを実行するか、Code -> Code Cleanup…からいつでも手動で起動できます。

ウェブテクノロジー

As usual, all the features and improvements of WebStorm are available in PhpStorm, either out of the box or with free plugins available in the repository.

ドキュメントの更新とブラウザの互換性

ドキュメントの更新とブラウザの互換性

CSSプロパティ、HTMLのタグと属性のドキュメント(F1)に、MDNのブラウザ対応状況に関する最新の説明と情報、ならびにMDNの記事全文へのリンクが表示されるようになりました。 使用中の全CSSプロパティがターゲットブラウザのバージョンに対応していることを確認するため、環境設定で新しいBrowser compatibilityインスペクションを有効にできるようになりました。

VueアプリでのTypeScriptサポートの改善

VueアプリでのTypeScriptサポートの改善

PhpStormは、.vueファイル内のTypeScriptコードに対して、TypeScript言語サービスと独自のTypeScriptサポートを併用するようになりました。 これにより、より正確な型チェックと型情報が得られ、サービスによって提供されるクイックフィックスを使用でき、現在のファイル内のすべてのTypeScriptエラーをTypeScriptツールウィンドウで確認できるようになります。

Angularアプリ用の新しいインスペクション

Angularアプリケーション用に、PhpStormに17個の新しいインスペクションが追加されました。これは、入力中にアプリ内のAngular固有のエラーを検出するのに役立ち、適切なクイックフィックスを提案するものです。 TypeScriptファイルとテンプレートファイルの両方で機能するこれらのインスペクションは、バインド、ディレクティブ、コンポーネント、その他の使用をチェックします。

新しいデバッガコンソール

JavaScriptとNode.jsのデバッグツールウィンドウで、新たに改善された対話型デバッガコンソールをご覧ください! コンソールはツリービューを使用してオブジェクトを表示するようになりました。また、CSSによるログメッセージのスタイル設定と、console.group()とconsole.groupEnd()を使用したメッセージのグループ化に対応しています。 また、任意の種類のログメッセージを除外することもできます。

Promiseを持つ関数をasync/awaitに変換

.then()と.catch() を呼び出してPromiseを返す関数を、async/await構文を使用するasync関数に自動的に変更できます。 関数名の上でAlt-Enterを押し、「Convert to async function」(非同期関数に変換)を選択するだけです。 これはTypeScriptファイルだけでなく、JavaScriptやFlowでも可能です。

IDE

最近の場所

Recent Locations (最近の場所)ポップアップ

この新しいナビゲーションポップアップでは、最近アクセスしたコードの場所がコンテキスト、つまりその前後の数行が一緒に表示されます。 このポップアップでは、すべての場所が時系列順に並べられ、最後にアクセスした場所が一番上に表示されます。 新しいRecent Locations (最近の場所)ポップアップを呼び出すには、 Cmd-Shift-E / Ctrl+Shift+Eを押します。 コンテキスト内で検索する任意のテキストを入力してください。

VCSの改善

VCSの改善

部分的なGitコミット用の新しいUncheck all(すべてのチェックを外す)チェックボックスを使用すると、一度にすべてのコードチャンクのチェックを外してから、コミットしたいものを選択できます。 さらに、fixup、squash、cherry-pickの各アクションをGitログで直接ご利用いただけるようになりました。

データベースツールの改善

カスタムUIテーマ

デフォルトの白とDarculaのテーマでは足りない場合、ダークパープルを試すか、カスタムテーマを作成してください! アイコンからラジオボタン、そして矢印まで、IDEのあらゆる要素の色が設定可能になりました。 すべてをお好みに合わせて微調整して、新しいテーマプラグインとして保存しましょう!

データベースツール

弊社DataGripチームメンバーの尽力により、PhpStormのデータベースツールに以下のような素晴らしい改善が行われました。

  • 新しいデータベースに対応しました(Greenplum、Vertica、Apache Hive)。
  • コード補完は、CREATEとDROPを組み合わせた文をサポートします。
  • MySQLとMariaDBでDEFINER属性をサポートします。
  • MariaDBでOracleモードをサポートします。
  • プロジェクト用にデフォルトフォルダを設定できるようになりました。

その他の改善:

  • プリミティブなパラメータ型とクラスメンバーに対し、表示対象別に新しいカラーオプションを設定できるようになりました。 カラースキームはPreferences | Editor | Color Scheme | PHPで設定できます。
  • 特定のファイルタイプに対してエディタでソフトラップを有効にできるようになりました。 これを行うには、Preferences/Settings | Editor | Generalを開き、「Soft-wrap files」フィールドでファイルの種類を指定します。
  • PHPDocのスタイル設定が改善されました。use文の並び替え、タグの順序定義、スペース数のカスタマイズができます。 すべてのオプションを見つけるには、Preferences | Editor | Code Style | PHPに進み、PHPDocタブを探してください。