PhpStorm の新機能

PhpStorm 2018.2の新機能

2018年にPhpStormの第2のメジャーアップデートを開発するためのドライブを体験してください。

補完

Custom postfix completion templates

カスタム後置補完テンプレート

後置コード補完はバージョン9以降PhpStormに存在していましたが、限られた数の定義済みテンプレートしか提供していませんでした。 PhpStorm 2018.2はカスタム後置補完テンプレートを追加できるようにして、後置補完を次のレベルに引き上げます。プロジェクトとあなたの個人的なコーディングスタイルに合わせてテンプレートを作成してください!

FQCN Completion

FQCN 補完

補完が要素名に加えて名前空間に一致するようになりました。 \ Illuminate \ Auth \ Eventsの各部分の補完を入力したり呼び出す必要はありません。代わりにIAuEと入力してください。

リファクタリング

Move Instance Method Refactoring

インスタンス・メソッドの移動リファクタリング

PhpStormにはすでにメソッドを移動するのに役立つプルアップ/プッシュダウン静的に変換 / 静的メソッドの移動リファクタリングがあります。静的にすることができないメソッドやクラス階層全体に渡って移動するメソッドを処理するために、PhpStorm 2018.2では、インスタンスメソッドをパラメータクラスまたはフィールドクラスに移動することを可能にするリファクタリングが導入されています。メソッド宣言でMoveリファクタリングを呼び出すだけで、新しいリファクタリングを適用できる場合は、ターゲットクラスを選択するようダイアログが表示されます。

PHP言語

Structural Search and Replace

構造検索と置換

PhpStorm 2018.2では、多くの新機能を提供し、パターン作成を大幅に簡素化する、PHPの構造検索と置換を完全に修正しました。構造変数の型を指定すると、たとえば、最初のパラメータが文字列である特定のメソッドへの呼び出しを見つけることができます。シンプルなパターンを使用して、無条件のreturn文を持つforeachループを見つけたり、コードスタイルがこれを強制する場合は、不要に二重引用符で囲まれた文字列をキャプチャする独自のインスペクションを作成することもできます。

Improved SQL Injections

改善されたSQLインジェクション

バージョン8では、PhpStormは、Language Injectionの文字列連結の基本的なサポートを導入しました。結果の文字列の動的性質とSQLパーサの厳密性により、SQLでは多くの誤検出エラーが発生しました。 PhpStorm 2018.2では、このようなエラーのほとんどを排除し、いくつかの新機能を導入しました。 PhpStormは、注入された文字列内で直接定数の値を代入できるようになりました。そのため、値をコピーして貼り付けずにクエリを実行できます。さらに、sprintfパラメータを使用するSQL文字列のサポートを追加しました。

New Inspections and Quick Fixes

新しいインスペクションとクイックフィックス

PhpStorm 2018.2は次のような便利な新しいインスペクションを提供します:

  • composer.jsonの拡張機能がないと、composer.jsonに指定されていないPHP拡張機能のクラス/関数/定数の使用状況が報告されます
  • PHPDocの要素の非正規の順序は 、型名の代わりに型名のような要素の非正則な順序を使用する@property、@param、@varなどのタグを報告します。
  • requiredパラメータの前のオプションのパラメータは 、オプションのパラメータが関数/メソッド宣言の必須パラメータの前に現れる状況を検出します。

Webテクノロジーのサポート

New JavaScript Intentions

新しいJavaScript インテンション

JavaScriptとTypeScriptで作業するときの生産性を向上させるため、PhpStormにはAlt-Enterキーを押したときに利用できる一連の新しいインテンションが用意されています。インターフェースの実装、派生クラスの作成、インターフェースまたは抽象クラスのメンバーの実装、切り替えのケースの生成、の繰り返しなど、いくつかの例があります。

Completion for events in Vue.js

Vue.jsのイベントの補完

VueテンプレートでPhpStormはイベント用にコード補完を提供します。イベント名は、v-onの後に示唆されています。または、省略表現@eventを使用する場合は、イベント名が推奨されます。イベント修飾子としてコード補完もあります。

いつものように、 WebStormのすべての機能と改善点は、そのままの状態で、またはリポジトリで使用可能な無料のプラグインを使用して、PhpStormで利用できます。その他の注目すべきWeb関連機能には、TypeScript 2.9と3.0のサポート、Reactコンポーネントのリファクタリング、Angular CLIとの新しい統合、グローバルファイルウォッチャー、再テスト失敗のテストなど、未使用のコードを見つけるのに役立つ新しいコードカバレッジ機能が含まれます。

IDEの改善

TouchBar

更新されたUI

macOSには、新しいアイコンと暗いタイトルバーが用意されています。さらに、PhpStorm 2018.2はMacBook Touch Barをサポートしています!プロジェクトの実行とデバッグ、変更のコミット、タッチバーからのプロジェクトの更新。

VCS

VCS

バージョン管理には次の変更が含まれています。

  • マージの競合を簡単に解決
  • [VCSログ]タブの拡張機能
  • リビジョンでリポジトリを参照
  • 複数のGitHubアカウント
  • プッシュダイアログをスキップする

データベース・ツール

Improvements in Database tools

PhpStormのデータベースツールは、DataGripチームの同僚のおかげで改善されました。

  • 新しいSQLフォーマッタ
  • ソースコードの移行
  • クエリプランダイアグラム
  • カスタムデータソース

その他の改善点:

  • $_SERVER['DOCUMENT_ROOT']のカスタマイズ可能な値
  • シンプルなCodeSniffer / MessDetectorセットアップ
  • クイックドキュメントの新しいプレゼンテーション
  • 古いスタイルのコンストラクタの新しいスタイルへの名前変更を許可する
  • 未定義のメソッドの新しい@methodタグを追加クイックフィックス
  • メソッドの追加クイックフィックスでパラメータタイプのヒントが挿入されるようになりました
  • PHPUnit複合構成
  • タブで閉じ括弧/引用符の外に移動する
  • HTTP クライアント: リクエスト本体の環境変数をサポートする
  • HTTP クライアント: POST要求本体のフォーマットをサポート
  • Docker: 作成ノードとコンテナからナビゲートする
  • Docker: Dockerログに単語をラップする
PhpStorm 2018.1について学ぶ

PHP言語

Inline function/method refactoring

関数/メソッドのインライン化リファクタリング

コード内でメソッドの本体を使用するほうが、メソッド自体を使用するよりも実用的な場合があります。その場合は、メソッドの呼び出しを実際のメソッドの内容に置き換える必要があります。これは、複数の関数呼び出しを処理し、適切な変数のスコープとデフォルト値を維持し、結果のコードを再フォーマットする必要があるため、場合によっては扱いにくいことがあります。新しいインラインリファクタリングは上記のすべてをお手伝いします。

Refactor your code to functional style

コードを関数スタイルにリファクタリングする

PhpStorm 2018.1では、命令型と機能型のコーディングスタイル間で簡単にコードを移行できるように、いくつかの新しいインスペクションとクイックフィックスが導入されています。これらはループをarray_maparray_filterarray_fill関数呼び出しに変換し、その逆もあります。同等の変換だけが実行され、コードのロジックは変更されません。

Configurable unchecked exceptions

構成可能なチェックされていない例外

PhpStorm 2017.3は、未処理の例外をキャッチしたり、@throwsタグが見つからないなど、新しい例外解析エンジンを導入しました。 PhpStorm 2018.1に時々必要とされる構成可能性を追加するために、分析から除外される例外リストを追加しました。

テスト

Creating class from test

テストからクラスを作成する

TDDがますます普及するにつれて、テストはすでに行われていますが、カバーされているクラスはまだ存在しません。このような状況に対処するため、PhpStorm 2018.1は既存のテストのクラスメソッドと一緒にクラスを生成するのに役立ちます。 PhpStormはまた、PSR-0 / PSR-4構造を考慮して、それぞれの場所にターゲットクラスとクラスメソッドを生成します。

Codeception: code coverage

Codeception: コード・カバレッジ

Codeceptionのコードカバレッジを実装するためのリクエストがありました。これはPhpStorm 2018.1で実装されており、PHPUnitカバレッジとまったく同じように動作します。カバレッジ結果は、プロジェクトビューとコードエディタの左ガターに表示されます。カバーされたコード行は緑色のマーカで示され、覆われていない行は赤色のマーカで示されます。

HTTP クライアント

Assertions support

アサーションのサポート

HTTPクライアントでのレスポンスの操作も大幅に強化されました。 PhpStorm 2018.1は、HTTP応答を受信したときに実行できるアサーションとカスタムJavaScript(ECMAScript 5.1)コードをサポートしています。レスポンスはJavaScriptオブジェクトとして扱われるため、そのすべての詳細に迅速にアクセスできます。要求が実際に期待されるものを返すことを主張するテストを作成することもできます。テスト結果が[テスト]タブに表示され、元の要求にナビゲートしてテストを再実行できます。

Simplified first start

簡略化した最初の開始

PhpStorm 2018.1は、新しいHTTPクライアントを起動し、廃止予定のGUIベースのRESTクライアントから移行するのに役立ちます。ライブテンプレートを使用すると、多くの入力をせずにリクエストスケルトンをすばやく挿入できます。最も頻繁に使用される要求のコレクションは、有用な要求の例を提供します。デフォルトのHTTPリクエストテンプレートは空ではなく、より早いスタートのための手がかりも含んでいます。

Webテクノロジーのサポート

Reformat with Prettier

Prettier で再フォーマット

新しいPrettier で再フォーマットアクション(Alt-Shift-Cmd / Ctrl-P)を使用すると、Prettierを使用して、選択したコード、ファイルまたはディレクトリ全体をフォーマットすることができます。 Prettierはプロジェクト依存として、またはマシン上にグローバルにインストールする必要があります。

Create new Vue project

新しいVueプロジェクトを作成する

Vue CLIを使用してWebStormで新しいVueプロジェクトを作成できるようになりました。 npmは--g vue-cliをインストールしますを実行してインストールし、IDEのウェルカム画面でCreate New Project - Vue.jsを押して、新しいプロジェクトで使用するテンプレートとツールに関する質問に答えます。

いつものように、 WebStormのすべての機能と改善点は、そのままの状態で、またはリポジトリで使用可能な無料のプラグインを使用して、PhpStormで利用できます。他にも注目すべきWeb関連機能には、TypeScript 2.7のサポート、未解決のプロパティのタイプガード付きサラウンドクイックフィックス、Vueコンポーネントインテンションの抽出、React Nativeアプリケーションのデバッグ、新しいNode.jsデバッガコンソールなどがあります。

IDEの改善

Partial commits in Git

Gitの部分コミット

部分的なGitコミットのサポートにより、ファイルから選択した変更のみをコミットできるようになりました。 Commit Changesダイアログのdiffビューのチェックボックスを使用して、コミットするコードのチャンクを選択します。エディタ・ガターでアクションを使用して変更されたコード行を新しいチェンジリストに追加し、チェンジリストをコミットすることもできます。

データベース・ツール

Improvements in Database tools

JetBrains DataGripチームの同僚のおかげで、PhpStormのデータベースツールが改善されました。

  • データエディタのSQLログ
  • これで、PhpStormにスキーマの切り替え方法を伝えることができます: 自動、手動、無効
  • Redshiftの外部スキーマとExasolの仮想スキーマ

その他の改善点:

  • シンボルへジャンプするナビゲーションの改善
  • クラスエイリアスの階層チェック
  • テストを実行するためのガターアイコン
  • 新しいComposerアクション
  • より良い@coversサポート
  • 新しいドキュメントUI
  • Windows用の複数ディスプレイでのHiDPIサポートの強化
  • 改良されたXDebug Profilerビューア
  • リワークされたフォーカスサブシステム
  • 特定のフォルダのターミナルを開く
PhpStorm 2017.3について学ぶ

エディタベースのRESTクライアント

New REST client interface

新しいRESTクライアントインターフェース

新しいRESTクライアントを使用すると、PhpStormコードエディタのすべての機能をRESTリクエストで使用できるようになりました。 コード補完を使用して、リクエストの作成、リファクタリングの適用、プロジェクトの一部としてのリクエストの保存、VCSへのリクエストの実行、要求の実行、サーバー応答の確認などをコードエディタを動かすことなく行えます。

Support for environment variables

環境変数のサポート

たとえば、開発ホストと本番ホストの名前など、作業環境に固有の値を保持する環境変数を定義します。 REST要求を作成するときに、その部分を変数に置き換えて、単一の要求を複数の目的に適した状態に保つことができます。

Compare your requests

要求を比較する

diffビューアは現在、サーバーの応答を処理します。変更がレスポンスに与える影響を確認したい場合は、RESTリクエストを複数回実行するだけです。次に、結果のペアを選択し、コードエディタから直接diffビューアを呼び出し、その違いを調べます。

PHP言語

Performance Improvements

パフォーマンスの向上

今回のリリースでは、パフォーマンスの改善に努めてきました。その結果、非常に複雑なPHPファイルの入力待ち時間が大幅に減少しました。PHP、JS、およびHTMLの38kラインのミックスであるmPDFメインファイルの入力レイテンシを調べましたが、PhpStorm 2017.3では75%ダウンしました!

Support of nullability in refactoring

リファクタリングにおけるNULL可能性のサポート

PhpStorm 2017.3は、PHP 7.1で導入されたnull許容のサポートをもたらしました。これは、インターフェースの抽出およびシグネチャーの変更リファクタリングで利用可能になりました。型宣言の省略や、実際にnullを返すか返すときに、関数のパラメータにデフォルトのヌル値を指定するのを避けるのに役立ちます。 PhpStormは、インターフェースの抽出を適用するとnull許容を保持し、シグネチャーの変更を適用している間にnull可能な型を検出するとエラーを通知しなくなります。

Improved code templates

改善されたコードテンプレート

名前空間コードでクラスを簡単に作成できるようにするため、新しいPHPクラスダイアログでカスタムPHPファイルテンプレートを選択できるようになりました。テンプレートで${NAMESPACE}変数を使用し、クラスを作成するときに名前空間の補完とPSR-0 / PSR-4名前空間の検出を利用します。
ファイルテンプレートだけでなく、PHPDocテンプレートで日、年、月を指定することもできます。

制御下に例外を持ち込む

New Inspection: Unhandled Exception

未処理の例外

新しい未処理の例外 インスペクションは、try-catchブロックに囲まれず、@throwsタグを使用して文書化されていない例外を報告します。 インスペクションは、スローされた例外が致命的なエラーにつながるコード内のすべての場所を見つけるのに役立ちます。したがって、@throwsタグを追加try/catch で囲むなどのクイックフィックスを使用することで、このような問題を解決できます。

Redundant/Superfluous @throws tag

冗長@throwsタグ

コードをリファクタリングした後、PHPDocを更新することを忘れたことはありませんか?新しい冗長@throwsタグ インスペクションを追加しました。対応する@throwsタグを削除するPHPDocを更新するクイックフィックスは、PHPDocのクリーンアップに役立ちます。

Redundant catch clause

冗長な catch 節

新しい冗長な catch 節 インスペクションと対応するcatch節を削除するクイックフィックスは、キャッチしようとしている例外が実際に投げられることはないので、キャッチブロックは冗長です。

テスト

Create new Codeception test

新しいCodeceptionとPHPSpecテストを作成する

新しいPHPテストを作成するダイアログでは、CodeceptionユニットCodeception機能性、およびPHPSpecテストタイプ用の新しいテンプレートが追加され、新しいCodeceptionおよびPHPSpecテストをより簡単に作成できます。

Test method generation

テスト方法の生成

テストメソッドを手動で作成する必要はありません。代わりに新しいPHPテストを作成するダイアログの新しいメソッドセレクタを使用してください。テストを提供するすべてのクラスメソッドまたはいくつかのクラスメソッドを選択するだけで、PhpStormはテストクラスとテストメソッドスタブを生成します。サポートされるすべてのフレームワークのテンプレートは、プロジェクト固有のコードを生成するためのニーズをカバーするために提供されています。

Rerun of PHPUnit test with specific dataset

特定のデータセットによるPHPUnitテストの再実行

PhpStorm 2017.3では、失敗したPHPUnitテストを特定のデータセットで再実行できます。データプロバイダを使用するテストメソッドがあり、データセットの1つだけが失敗する場合、テスト全体をもう一度実行する必要はありません。直前のテスト実行から特定のデータセットを選択し、再度実行/デバッグします。

Undefined PHPUnit data provider

未定義の PHPUnit データ・プロバイダー

PhpStorm 2017.3では、未定義の PHPUnit データ・プロバイダー インスペクションが導入されました。これは、単体テストでは見つからない@dataProviderメソッドを示しています。次に、提案されているデータプロバイダを作成するクイックフィックスを適用して、欠落しているメソッドを簡単に作成できます。

Twigのサポート

Injections in Twig templates

Twigテンプレートの注入

Twigカスタムタグと名前付きブロックの言語インジェクションを実装しました。名前付きブロックまたはカスタムタグの間に言語を挿入することができます。永久注入ルールを作成することもできます。

Improved Twig formatting

改良されたTwigフォーマット

PhpStorm 2017.3は、複雑な構造を扱い、正しいインデントを与えることができる、改良されたTwigフォーマットを提供します。

Webテクノロジーのサポート

Improvements in Vue.js support

Vue.jsサポートの改善

このアップデートにより、Vue.jsに対するPhpStormのサポートが大幅に改善されました! コード補完と定義へのナビゲーションは、Vueの小道具、データオブジェクトのプロパティ、計算されたプロパティ、およびメソッドで機能するようになりました。中括弧波括弧がVueテンプレートに自動的に追加されるようになりました。 Vueのコードスニペットのコレクションも追加しました。これらのコードテンプレートは、頻繁に使用されるコードブロックの入力時間を節約するのに役立ちます。新しいVueファイルテンプレートを使用すると、新しいコンポーネントをすばやく作成することもできます。

Better code completion and documentation for JavaScript

より良いコード補完とJavaScriptのドキュメント

これらの機能はTypeScript宣言ファイルによって強化されているため、標準のJavaScriptオブジェクトとメソッドおよびWeb APIのコード補完およびパラメータ情報が改善されました。 F1を介して入手可能なドキュメントには、バンドルされた定義ファイルから取得されたメソッドまたはMDNから取得されたメソッドの簡単な説明も含まれています。

New Pull Member Up refactoring

新しいプルメンバーリファクタリング

新しいリファクタリングでは、クラスメソッドを現在のJavaScriptまたはTypeScriptクラスからその親クラスまたはインターフェースに移動することができます。または親クラスがまだない場合は、新しいスーパークラスの抽出リファクタリングを使用して、フィールドとメソッドをスーパークラスに抽出できます。

いつものように、 WebStormのすべての機能と改善点は、そのままの状態で、またはリポジトリで使用可能な無料のプラグインを使用して、PhpStormで利用できます。その他の特筆すべきWeb関連機能には、TypeScriptの抽出エイリアスインターフェースの抽出リファクタリング、プロジェクトの複数のJavaScriptバージョン、Jest統合の改善、CSSのサポート、ESLintやTSLintなどのインポートコードスタイルなどがあります。

バージョン管理

Version Control

バージョン管理には次の変更が含まれています。

  • ブランチ間の切り替えはあなたのワークスペースを維持します
  • シェルフタブでチェンジリストの名前を変更できるようになりました
  • シェルフとローカルの変更タブの間のD'n'D

データベース・ツール

Improvements in Database tools

JetBrains DataGripチームの同僚のおかげで、PhpStormのデータベースツールが改善されました。

  • データベースビューの改善
  • SQL ジェネレーター
  • JOINステートメントの補完
  • SSHトンネリング

その他の改善点:

  • 再設計されたコード・スタイル | PHP設定ページ
  • 新しいComposerログ
  • 改良されたPHPUnit実行構成
  • フィールドの初期化の可視性を定義するインテンション
PhpStorm 2017.2について学ぶ