PhpStorm 2018.3の新機能

PHP

Doctrine Query Language

Doctrine Query Language

DQLでデータベースクエリを書けることはDoctrine ORMの重要な機能の1つです。DQLはオブジェクトモデルの問い合わせ言語です。クエリ内でPHPクラスやフィールド名を使ってデータをフェッチしたりアップデートしたり出来ます。PhpStormはadvanced DQLをフルにサポートします。インスペクションとリファクタリング、利用箇所の検索やエンティティ名やフィールド名のリネーム、関連のサポートなどが可能です。

PHP 7.3 Support

PHP 7.3サポート

Heredoc / Nowdocシンタックス、関数/メソッドコールの続くカンマ、instanceofオペランドとしてのリテラル、list() リファレンスの代入を含む最新のPHP 7.3をフルサポートします。

Ctrl+Dot 補完

Ctrl+. を候補リストで押すことでアイテムをアロー付きで補完出来ます。すぐに続けてメソッド名を入力出来ます。

PHPDoc 改善

PhpStormは交差型(Intersection Type) “&をサポートします。変数をFoo&Barとしてアノテートすれば、 Foo型とBar型を同時に定義出来ます。また双方のクラスのメンバーどちらもサジェストします。

文字列をフォーマットする関数サポートの改善

printf() / sprintf() を使うのが簡単になり、良くある間違いも抑止します。

Refactorings and Intentions
Refactorings and Intentions

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

PhpStorm 2018.3ではリファクタリングが強化され、インテンションアクションも多く追加されています:

  • Replace with Alias インテンションでは Foo\Barを利用している箇所をFoo\Bar as Bazとして置き換えることが出来ます。Barとして利用している箇所はBazに置き換えられます。逆の操作であるInline Alias アクションも可能です。
  • Сhange Class Member Visibility インテンションではプロパティとメソッドのsafely switch public/protected/private 修飾子を安全に変更出来ます。
  • プライベートな名前のリファクタリングが改善され、PhpStormはデフォルトでプライベートなプロパティをリネームするさい、コンテクスト内の利用箇所のみを検索するようになりました。

デプロイメント

Remote Deployment To Multiple Hosts

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

PhpStormはFTP/SFTP/FTPSを使ってリモートサーバーへファイルを(自動で)コピーする機能があります。もちろんローカルでマウントしてあるフォルダを対象とすることも出来ます。サーバーグループを設定することで複数のサーバへまとめてデプロイすることが出来るようになりました。グループも、グループに属するホストも任意の数だけ作ることができ、ワンクリックでまとめて全てのサーバへデプロイできます。

クオリティーツール

PHP CS Fixer Support

PHP CS Fixerサポート

PHP CS Fixerをサポートし、コードスタイルの問題を自動的に修正することが出来るようになりました。 PHP CS Fixer のパスを自動的に認識するだけでなく、カスタムルールセットも自動検出し、関連するインスペクションを有効化出来ます。コードスタイルに問題のあるファイルを開いて、クイックフィックスを実行すればファイル内の問題をまとめて修正出来ます。

PHP_CodeSnifferでnon-PSRコーディング標準の自動検出

compose.jsonでフレームワークとしてSymfony、Doctrine、Drupal、WordPress、Joomla!、Magento、MediaWiki、Yii 2、CakePHPを指定している場合はPHP_CodeSnifferで非PSRコーディング標準を自動検出します。

クオリティーツール設定の簡略化

PHPCS、PHPMD、PHP CS Fixerの設定を一箇所で行えるようになりました。

バージョン管理

GitHub Pull Requests

GitHubプルリクエスト

GitHubプルリクエストをIDEがサポートします。VCS | Git | View Pull Requests で表示されるGitHub Pull RequestsツールウィンドウでPRを確認できます。diffをプレビューしたり、PRからコンテクストメニューを使ってローカルブランチを作って通常のブランチと同じくマージしたりできます。

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

ついにGitサブモジュールをサポートします!クローン、アップデート、コミット、diffの確認、コンフリクトの解決まで行えます。

ホワイトスペースを無視

diffビューだけでなくマージ中もホワイトスペースを確認出来るようになりました。Merge Revisions for ダイアログで Ignore ドロップダウンメニューを使ってホワイトスペースを隠したり、トリムしたりできます。

バージョン管理のその他の機能

VCS logをアローキーでナビゲート、複数Gitリポジトリの並列フェッチ、プリコミットフックサポート改善など。

Webテクノロジサポート

Autoimports in JavaScript

JavaScriptで自動インポート

プロジェクトの依存からJavaScriptで必要なインポートを追加します。これはパッケージ内にTypeScript定義がある場合、またはパッケージがESモジュールとして書かれたソースを含む場合に働きます。

Improved Angular support

Angularサポートの改善

Angularテンプレートにおけるコード補完と変数、pipe、async pipe、テンプレートリファレンス変数のの定義箇所へのジャンプがより正確になりました。AngularとAngularJSサポート回りで50を超える既知の問題を修正しました。

‘null’と’undefined’チェックの改善

静的解析が賢くなりundefined または nullの値を検出して、メソッド呼び出しを行ったり、関数に渡したり、プロパティが参照されたりするパターンを検出します。

Vuetifyサポート

Vuetify バージョン 1.1またはそれ以降のコード補完が可能になりました。

Reactサポート改善

全てのライフサイクルメソッドをコード補完でサジェストします。未定義と思われるコンポーネントについても警告します。

いつも通り、WebStormで実装された新機能は全てデフォルトで、またはプラグインの追加でPhpStormでご利用頂けます。

IDE

Search Everywhere

検索ポップアップ

プロジェクトとIDE内をより効率的にナビゲート出来ます。改善されたSearch Everywhereは他のナビゲーションダイアログであるFind ActionGo to classGo to fileGo to symbolと統合されま、tabキーで別の検索コンテクストに移動出来ます。もちろん全てのナビゲーションダイアログは依然これまでと同じショートカットでアクセスできます。

VCS

ハイコントラストテーマ

JetBrainsは全てのユーザーに最高の体験をもたらすことにコミットしています。そこで今回ハイコントラストテーマを今回実装しました。

データベースツール

Improvements in Database tools

PhpStormのデータベースツールはDataGripチームの働きにより強化されています:

  • Cassandraデータベースサポート
  • コード補完の強化
  • PostgreSQLのエクステンションのサポート
  • テーブルエイリアスインテンションの導入
  • タイムアウト後の自動再コネクト

その他の改善:

  • デバッグ中に変数を探すのに苦労したことはありませんか?デバッグ中に変数名をタイプすることで絞り込めます
  • HTTPリクエストのRun configuration を作成可能になり、実際にHTTPリクエストを行う際自動的に作成されます
  • Aliases Referencesがイタリック表示 され、本当のクラス名とエイリアス名を区別しやすくなりました
  • compose.jsonとdotfileよりテストフレームワークの設定を自動検出、実行設定を自動作成します
  • PHPUnitのsetUpとtearDownメソッドを生成でき、毎テスト実行前または後の処理を記述できます