PhpStorm の新機能

PhpStorm 2019.1の新機能

PhpStorm in2019の最初のメジャーアップデートで、The Drive to Developを体験してください

TwigおよびBladeテンプレートをデバッグする

厄介なバグに直面したり、コードベースを深く掘り下げる際、デバッグは非常に効果的ですが、コンパイルされたテンプレートの機械生成コードを通過するときは悪夢です。PhpStormとXdebugを使え ば、これら2つの一般的なテンプレートエンジンの元の未コンパイルの .twig.blade.php ファイルでステップデバッグを実行できます。コンテキスト、ローカル変数およびグローバル変数の参照、ウォッチの追加、ステップバイステップの実行など、デバッグの利点はすべてここで利用できます。

デッドコードを探す

従来のコードベースを扱っていて、クリーンアップしたい場合は、まず最初にデッドコードを削除することをお勧めします。すぐにPhpStormは冗長なコードを検出して、決して使われないクラス、クラスメンバーと関数を強調表示します。未使用の宣言 インスペクションは、たとえばマジック・メソッドなど、コードの動的な使用箇所を考慮に入れています。プロジェクト全体のレポートを確認するには、コード->コードのインスペクション…を選択します。

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

String Concat To Strintf

文字列ジャグリングツールボックス

文字列を操作するための新しいインテンションを複数追加しました。文字列の連結を補間に変換したり、連結または補間をsprintf呼び出しに変換したり、連結された文字列をクリップボードにコピーしたりすることができます。利用可能なアクションを確認するには、文字列に対して Alt+Enter を押します。

VCS Improvements

未使用の変数を削除

PhpStorm 2019.1では、割り当てやクロージャの使用リストに表示される未使用の変数を削除するのに役立つ新しいクイックフィックスが導入されました。クイックフィックスは、代入式に副作用がある可能性がある場合に状況を検出するのに優れています。

Move To Class Refactoring

クラスに移動リファクタリング

新しいクラスへの移動のリファクタリングで、それらが論理的に属するクラスに関数または定数を移行することができ、PhpStormはあなたのためにすべての用法を見つけて、修正するでしょう。構造ツールウィンドウで複数の機能を選択して同時に移動することができます。

Method May Be ‘static’ Inspection

'static' にできる可能性があるメソッド・インスペクション

インスタンス参照を使用しないメソッドがクラスにある場合、PhpStormはそれを検出して便利な手っ取り早い解決策を提供します。メソッド上で Alt+Enter を押して静的にします。すべての用法は自動的に更新されます。

Docker

コンテナーの再利用

Docker Reuse Containers

Docker Composeベースのインタープリターの場合、コンテナーを実行するためにdocker-compose実行またはdocker-compose execのどちらかを選択できるようになりました。テスト実行のたびに再起動したくない重いコンテナーがある場合は、docker-compose execオプションを選択して再利用することができます。あるいは、docker-composeを軽量コンテナーまたはデーモン・モードで機能していないコンテナー(つまり、開始直後に停止)に実行することもできます。

PHP

改善された自動補完

特別なファイル .phpstorm.meta.php(英語) の助けを借りて、PhpStormは引数を提案し、より良い値を返すことができるようになりました。これは、整数や文字列のような単純な型の代わりに、特定の定数のセットが提案されているのを見たいときの状況をカバーするためです。あるいは、ある関数が特定の定数を返すと予想される場合、独自の .phpstorm.meta.php ファイルを提供することによって、ライブラリーやプロジェクトのためにPhpStormの提案を改善することもできます。

書き直されたインポート

Improved Imports

FQNをインポートして使用するネームスペースに関連するインスペクションおよびインテンションアクションを作り直しました。その背後にある主な考え方は、修飾子をできるだけ避けることです。PhpStormは可能なら冗長な修飾子を単に削除するか、それを対応する「use」インポート文に置き換えることを可能にします。また、ファイルにコードを貼り付けると、PhpStormは既存のエイリアスの再利用を要求します。

コードのクリーンアップ

PhpStorm 2019.1では、コードクリーンアップツールにPHP固有のインテンションが付属しています。「use」ステートメントを追加するか、不要な部分を削除することで、クラス名全体の出現を最適化できます。PHP CS FixerまたはPHP_CodeSnifferのphpcbfを使用してコードスタイルの課題を自動的に修正することもできます。VCSがコミットする前にクリーンアップを実行するか、コード->コードのクリーンアップ…を介していつでも手動でトリガします。

Web テクノロジー

通常どおり、WebStormのすべての機能と改善はPhpStormでそのまま、またはリポジトリで利用可能な無料のプラグインのいずれかで利用可能です。

Updated docs and browser compatibility

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

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

Improved support for TypeScript in Vue apps

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構文を使用する非同期関数に自動的に変更することができます。関数名の上で Alt-Enter を押して、非同期関数に変換を選択するだけです。これはTypeScriptファイルだけでなく、JavaScriptとFlowでも可能です。

IDE

Recent Locations

最近使用したロケーション・ポップアップ

この新しいナビゲーションポップアップでは、最近アクセスしたコードポイントが前後2〜3行前後で表示されます。このポップアップでは、すべてのロケーションが時系列順に並べられ、最後に訪れたロケーションが一番上に表示されます。新しい「最近使用したロケーション」ポップアップを呼び出すには、Cmd-Shift-E / Ctrl+Shift+Eを押します。コンテキスト内で検索するには任意のテキストを入力します。

VCS Improvements

VCSの改善

部分Gitコミットのための新しい「すべてチェックを外す」チェックボックスは一度にすべてのコードチャンクのチェックを外し、コミットしたいものを選ぶことを可能にします。さらに、修正、スカッシュ、チェリーピックのアクションがGitログで利用可能になりました。

Improvements in Database tools

カスタムUIテーマ

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

データベース・ツール

PhpStormのデータベースツールは、DataGripチームの私たちの同僚のおかげで、いくつか素晴らしい改善がなされました。

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

その他の改善点

  • 可視性によるプリミティブパラメータ型とクラスメンバーのための新しいカラーリングオプション。配色は環境設定 | エディター | カラー・スキームの切り替え | PHPで設定できます。
  • 特定のファイルタイプに対してエディターでソフトラップを有効にできるようになりました。これを行うには、環境設定/設定 | エディター | 一般を開き、「ソフトラップファイル」フィールドにファイルの種類を指定します。
  • PHPDocのスタイル設定が改善されました。useステートメントのソート、タグの順序の定義、スペースの数のカスタマイズです。すべてのオプションを見つけるには、環境設定 | エディター | コード・スタイル | PHPにジャンプし、PHPDocタブを探してください。
PhpStorm 2018.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 Completion

候補リストの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コーディング標準の自動検出

PHP_CodeSnifferの非PSRコーディング標準は、次のフレームワーク用にcomposer.jsonから自動検出されます。Symfony、Doctrine、Drupal、WordPress、Joomla!、Magento、MediaWiki、Yii 2、およびCakePHP。

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

品質ツールの設定が簡素化されました。サポートされているすべてのツール(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は、未定義またはnullの値、または関数に渡された値、またはそのプロパティーが使用されている値でメソッドが呼び出されるため、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 フレームワークの設定を自動検出し、自動的に実行構成作成してテストを実行します。
  • 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について学ぶ