PhpStorm の新機能

PhpStorm 2018.1の新機能

2018年のPhpStormの最初のメジャーアップデートで、開発するドライブを体験してください。

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を返すか返すときに、関数のパラメータにデフォルトの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について学ぶ

Composer

New Composer Actions

新しいComposerアクション

コマンドラインに切り替えることなく、依存関係の更新、依存関係のインストール、依存関係の削除自己更新のアクションをIDEから直接実行することができます。

PhpStorm and Composer.json settings synchronization

PhpStormとcomposer.json設定の同期

composer.jsonにはプロジェクトに関する最新の情報が含まれているため、PhpStormとcomposer.jsonの間で新しい設定を同期させることで、PHP Language Level、PhpStorm Source、およびTestフォルダは、composer.jsonで指定されたプロジェクト設定および構造と正確に一致します。 。これにより、PhpStormのプロジェクト構成が大幅に簡素化されます。

Global installation and easy project creation

作曲家のグローバルインストールとのシームレスな作業

これで、グローバルにインストールされた作曲家を使用できます。 PhpStormは、それをインストールしているかどうかを検出し、必要に応じてプロジェクトの作成を簡素化します。また、既存のプロジェクトに対してグローバルにインストールされたコンポーザーを設定して、すべてのプロジェクトでデフォルトにすることもできます。これにより、以前にダウンロードしたcomposer.pharを探したり、もう一度composer.pharをプロジェクトにダウンロードするのに費やす時間が節約されます。

PHP ランタイム

Docker Compose

Docker Compose

Docker Composeに基づくPHPインタプリタがPhpStormでサポートされるようになりました。 docker-compose.ymlからPhpStormまで、ボリューム、ネットワーク、環境変数などのすべての設定を複製する必要はありません。 Docker Composeベースのインタプリタには、リモートインタプリタのすべての使い慣れた機能が含まれているので、PHPコードの実行/デバッグ、PHPUnit、Codeception、Behat、PHPSpecテストの実行/デバッグが可能です。

Detection of enabled/disabled extensions from PHP interpreter

PHPインタープリタの有効/無効拡張の検出

以前のPhpStormリリースでは、プロジェクトで使用されるPHP拡張機能を設定することができました。選択されたPHPインタプリタから、有効/無効の拡張機能の自動検出を追加しました。これは、PHPディストリビューションに実際にインストールされているプロジェクト拡張設定と拡張機能を同期させるのに役立ちます。この機能は、ローカルのPHPインタプリタや、すべてのタイプのリモートのインタープリタでも機能します。

Preserve state of Start Listening for PHP Debug Connection option

PHPデバッグ接続の開始リッスンの状態を保持するオプション

PhpStorm 2017.2では、プロジェクトでPHP Debug Connectionの開始リッスンが有効になっている場合、プロジェクトの再オープン時にオプションが復元されます。これは、オプションを有効にするのを忘れたためにデバッグが機能しない状況を回避するのに役立ちます。

PHP言語サポート

Reworked polymorphic types support

再処理された多態型のサポート

我々は、$ this、静的、自己のような多型のサポートを完全に修正しました。これは、メソッドが2つの戻り値型を持つ場合はチェーン呼び出しで型が見つからない、基底クラスからのメソッドが$ thisを返す場合は新しいstatic()呼び出しで型が失われ、正しく解決されない型では自己が返されるなど多くの関連する問題が修正されます。さらに、構成された形質のサポートが改善されました。

Reworked polymorphic types support

PHP 7.2のサポート2017.2.1

PHP 7.2がベータ版になったので、PhpStormで新しいバージョンのPHPを試す機会があります。 PhpStorm 2017.2.1は、PHP 7.2のすべての機能をサポートしています(抽象メソッドのオーバーライド、パラメータ型の拡大、リスト構文の後続カンマオブジェクトタイプヒントなど)。

Better Refactoring for PHP 7/ 7.1

PHP 7 / 7.1のリファクタリングの改善

PhpStorm 2017.2により、PHP 7 / 7.1のリファクタリングが改善されました。特に、変更シグネチャリファクタリングで戻り値の型がサポートされ、定数のリファクタリングで定数の可視性レベルを使用できるようになりました。

$this highlighting

$this 強調表示

PhpStorm 2017.2では、$ thisにキャレットを置くと、PhpStormはこの変数のすべての使用箇所をクラス全体でハイライト表示します。変数のすべての用途を簡単に表示できるので、非常に便利です。

New inspections

新しいインスペクション

PhpStorm 2017.2は、新しい便利なインスペクションを

  • 空のボディを持つステートメント インスペクション
  • PHP 7以上のstrict_types宣言の使用
  • 互換性がないスーパー・クラスのメソッド宣言が実装されたインターフェース
  • 短いオープン・タグの使用 インスペクション2017.2.1

テスト

Automatic run of PHPUnit tests

自動的にPHPUnitテストを実行する

PhpStorm 2017.2では、指定した遅延で自動的にPHPUnitテストを再実行できます。特定の構成に対して自動実行を有効にし、遅延値を設定すると、ファイルの編集を中止した後でその遅延で自動的にテストが再実行されます。

Unified Test Frameworks settings

統合テストフレームワークの設定

PhpStormの設定を簡素化し、統一し続けます。この小さくても快適なアップデートでは、PHPUnit、Behat、PHPSpec、Codeceptionのテストフレームワークに1つの設定ページがあります。

改善されたPHPフォーマット

New formatting options

新しい書式設定オプション

PhpStorm 2017.2は新しい便利なコードスタイルオプションをもたらします:

  • ヌル合体オペレータ周辺のスペース
  • 空白行の新しいフォーマッタオプション
  • ifステートメントの新しい括弧オプション
  • クロージャ用の波括弧配置用の別個のオプション
  • 新しい新しい行に戻り値の型オプション

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

Support for webpack enhanced module resolution

拡張webpackモジュール解像度のサポート

JavaScriptファイルのコーディング支援は、webpackモジュールの解像度を尊重するようになりました。つまり、エイリアスと複数のモジュールを持つ複雑なwebpack構成を使用している場合、PhpStormはインポート文を適切に解決します。

Import from ESLint

ESLintからのインポート

いくつかのESLintコードスタイルルールをIDEのJavaScriptコードスタイル設定にインポートできるようになりました。 .eslintrcファイルでこれを確認するメッセージが表示されたら、「はい」をクリックして一致するルールを適用し、IDEフォーマットをESLintの設定とより一致させます。

Rearrange code for JavaScript and TypeScript

JavaScriptとTypeScriptのコードを再整理する

新しいコードスタイルオプションを使用すると、JavaScriptやTypeScriptクラスでコンストラクタ、フィールド、メソッドなどの異なるコードブロックの順序を設定することができます。 Rearrange Codeアクションを呼び出すか、Reformat Codeと一緒に使用すると、コードをより読みやすく一貫性のあるものにすることができます。

いつものように、 WebStormのすべての機能と改善点は、そのままの状態で、またはリポジトリで使用可能な無料のプラグインを使用して、PhpStormで利用できます。その他の特筆すべきWeb関連機能には、Angularマテリアルのサポート、TypeScriptのパラメータヒントとタイプ情報、移動シンボルリファクタリングなどがあります。

IDEの改善

Version Control

バージョン管理

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

  • コミットを元に戻して書き直す
  • コミットメッセージの書式設定
  • リワークシェルブ
Find in Path

パスの改善を見つける

[パスで検索]の[プレビュー]パネルには、行番号、ナビゲーションアイコン、およびローカルの変更マーカーが付いた「ガター」(エディタのような左側のペイン)が追加されました。さらに、同じ行からの検索結果がまとめてマージされるようになりました。

Pause indexing

インデックス作成を一時停止する

緊急タスクのためにCPUパワーが必要な場合など、インデックス作成プロセスを一時停止することができます。

データベース・ツール

Improvements in Database tools

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

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

  • 1つのPostgreSQLデータソースにあるいくつかのデータベース
  • 大規模なクエリが終了したときに通知を受ける
  • トランザクション制御

その他の改善点:

  • PHPフレームワークの統一された設定
  • SSHエージェントのサポート
  • PHP UML図の新しいフィールド/メソッドアクションを作成する
  • より良いHiDPIサポート
  • Blade: @guestおよび@endguestのサポート2017.2.1
  • break / continueから適切なループへのナビゲーション2017.2.1