PhpStorm の新機能

PhpStorm 2018.3の新機能

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

PHP

Doctrine Query Language

Doctrineクエリ言語

Doctrine ORMの主な機能の1つは、オブジェクトモデルのクエリ言語であるDQLでデータベースクエリを記述する機能です。これは、クエリでは、PHPのクラスとフィールドの名前を使用してデータを取得または更新することを意味します。PhpStormには完全な高度なDQLサポートが付属しています。すべてのインスペクションとリファクタリングが利用できます。使用箇所を見つけたり、エンティティやフィールドの名前を変更したり、関連付けをサポートしたりすることができます。

PHP 7.3 Support

PHP 7.3サポート

最新のPHPインタープリターのアップデートでは、コミュニティのための多くの新機能が導入されています。PhpStormは、柔軟なHeredoc構文とNowdoc構文、関数とメソッド呼び出しの後続のカンマ、instanceofの最初のオペランドとしてのリテラル、および list() の参照割り当てを含む、それらのすべてをサポートしています。

Ctrl + Dotの補完

候補リストのCtrl+.を押して、完了した項目を取得してから矢印をクリックします。すぐにメソッド名を入力することができます。

PHPDocの改善

PhpStormは交差型 "&"のサポートを追加しました。 Foo&Barとして変数に注釈を付けると、同時にタイプ Foo とタイプ Bar になります。PhpStormは、両方のクラスのメンバーも提案します。

書式設定された文字列関数の改善

PhpStormは printf() / sprintf() の使用を容易にし、よくある間違いを防ぎます。

Refactorings and Intentions
Refactorings and Intentions

リファクタリングとインテンション

PhpStorm 2018.3は、多くのリファクタリングの改善と関連するインテンションアクションを提供します。

  • 別名 インテンションで置換すると、Foo \ Barの使用をFoo \ BarとBazとして置き換えることができ、Barのすべての出現をBazに置き換えます。逆のアクションインラインエイリアスも使用できます。
  • 新しいインテンション クラスメンバー可視性の変更により、プロパティー/メソッドのpublic / protected / private修飾子を安全に切り替えることができます。
  • プライベートリファクタリングが改善され、デフォルトでは、プライベートプロパティーの名前を変更するときに、PhpStormはコンテキストの使用のみを検索します。

デプロイ

Remote Deployment To Multiple Hosts

複数のホストへのリモート デプロイ

PhpStormを使用すると、FTP / SFTP / FTPSを使用してリモートサーバーにファイルとフォルダーをコピーするだけでなく、ローカルまたはマウントされたフォルダーを宛先としてコピーできます。これで、サーバーグループを使用して複数のサーバーに同時に展開できます。グループごとに任意の数の宛先を希望の数だけ追加し、ワンクリックでグループ内のすべてのサーバーに同時に展開できます。

品質ツール

PHP CS Fixer Support

PHP CS Fixerのサポート

PHP CS Fixerのサポートにより、コードスタイルの問題を自動的に修正することが可能になりました。PhpStormはPHP CS Fixerへのパスを検出するだけでなく、カスタムルールセットを自動検出し、対応するインスペクションをオンにします。コードスタイルの問題を含むファイルに移動し、ファイル全体を一度に更新するクイックフィックス実行します。

PHP_CodeSnifferの非PSRコーディング標準の自動検出

Symfony、Doctrine、Drupal、WordPress、Joomla!、Magento、MediaWiki、Yii 2、CakePHPのPHP_CodeSnifferの非PSRコーディング標準は、composer.jsonから自動検出されます。

品質ツールの簡略化された設定

品質ツールの設定が簡素化されました。サポートされているすべてのツール(PHPCS、PHPMD、およびPHP CS Fixer)を1か所で構成できるようになりました。

バージョン管理

GitHub Pull Requests

GitHubプルリクエスト

PhpStorm内でプルリクエストを処理できるようになりました。メニューのVCS | Git | プルリクエストの表示を選択すると、プロジェクト内のすべてのプルリクエストのリストを含む新しいツールウィンドウが開きます。プル要求から、説明、担当者、レビューアー、ラベル、および変更されたファイルを確認できます。差分を参照して、そこにプルリクエストから新しいローカルブランチを作成してください。

Gitサブモジュールのサポート

プロジェクトの更新、変更のコミット、差分の表示、衝突の解決など、Git統合のすべての使い慣れた機能は、Gitサブモジュールで動作するようになりました

空白を無視

マージ中に空白無視またはトリミングできるようになりました。この設定は、リビジョンのマージダイアログの上部にある新しいドロップダウンで利用できます。ファイルに注釈を付けるを使用すると、デフォルトで空白も無視されます。

さらに

矢印キーを使用したVCSログ内の高度なナビゲーション、複数のGit reposの並列フェッチ、プリコミットフックのより良いサポート、およびその他の多くの改善が行われています。

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

Autoimports in JavaScript

JavaScriptのオートインポート

JavaScriptファイルでは、PhpStormはプロジェクトで定義されたシンボルだけでなく、プロジェクトの依存関係のシンボルに対してもインポートを自動的に追加できるようになりました。これは、ライブラリーにESモジュールまたはTypeScriptタイプ定義ファイルとして記述されたソースがある限り機能します。

Improved Angular support

改善されたAngularサポート

PhpStormはAngularテンプレートを編集できます。変数、パイプ、非同期パイプ、およびテンプレート参照変数のコード補完と定義への移動がより正確になりました。合計で、50以上の既知の問題がAngularとAngularJSのサポートで修正されています。

'null' と 'undefined' のチェック改善

PhpStormは、未定義またはの値、または関数に渡された値、またはそのプロパティーが使用されている値でメソッドが呼び出されるため、TypeErrorにつながる状況をよりよく検出できるようになりました。

Vuetifyのサポート

PhpStormは、Vuetifyバージョン1.1以降のコンポーネント用にコード補完を提供します。

Reactの改善

Reactアプリケーションでは、コード補完はすべてのコンポーネントライフサイクルメソッドを提案します。Unresolved変数 インスペクションは未定義の可能性のあるコンポーネントについて警告します。


いつものように、WebStormのすべての機能と改善点は、PhpStormでそのまま、またはリポジトリにある無料のプラグインで利用できます。

IDE

Search Everywhere

新しい検索ポップアップ

新しい「すべての場所を検索」ダイアログは、クラスとファイル、シンボル、さらにはアクションや設定を検索して、プロジェクトとIDEをナビゲートするためのより良い方法です。Shiftキーを押しながらShiftキーを押してどこでも検索し、Tabキーを押してコンテキストを切り替えます。

VCS

ハイコントラストテーマ

PhpStormをより使いやすくするために、新しい高コントラストのUIテーマを追加しました。IDEでは、スクリーンリーダーが行番号、VCS注釈、ブレークポイント、およびその他のガターアイコンを読み取ることができるようになりました。スクリーンリーダーのサポートの詳細については、ドキュメントを参照してください。

データベース・ツール

Improvements in Database tools

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

  • Cassandraデータベースのサポート
  • コード補完の多くの改善
  • PostgreSQLの拡張機能のサポート
  • テーブルエイリアスインテンションを導入
  • タイムアウト後の自動再接続

その他の改善点:

  • デバッグ中に変数を見つけることにこれまで苦労しましたか? デバッグで変数検索するために何かを入力し始めます。
  • HTTPリクエストの実行構成は、リクエストを実行するとすぐに自動的にサポートされ、自動的に作成されます。
  • エイリアス参照Italicでは、実際のクラス名とエイリアス名を区別できます。
  • PhpStormはcomposer.jsonとdotfilesに基づいてTest フレームワークの設定を自動検出し、自動的にRun Configuration作成してテストを実行します。
  • PHPUnitのsetUpメソッドとtearDownメソッドは、それぞれのテストメソッドを実行する前後に毎回呼び出すことができます。
PhpStorm 2018.2について学ぶ

補完

Custom postfix completion templates

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

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

FQCN Completion

FQCN 補完

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

リファクタリング

Move Instance Method Refactoring

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

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

PHP言語

Structural Search and Replace

構造検索と置換

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

Improved SQL Injections

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

バージョン8では、PhpStormは言語インジェクションの文字列連結の基本的なサポートを導入しました。結果として得られる文字列の動的性質と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などのように非標準的な順序の要素を使用するタグを報告します。タイプ名の代わりにタイプタイプ。
  • 必須パラメーターの前のオプション・パラメーターは、オプションのパラメーターが関数/メソッド宣言内の必須パラメーターの前にある場合に状況を検出します。

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ビューアー
  • リワークされたフォーカスサブシステム
  • 特定のフォルダーのターミナルを開く