PHP
Doctrine Query Language
DQLでデータベースクエリを書けることはDoctrine ORMの重要な機能の1つです。DQLはオブジェクトモデルの問い合わせ言語です。クエリ内でPHPクラスやフィールド名を使ってデータをフェッチしたりアップデートしたり出来ます。PhpStormはadvanced DQLをフルにサポートします。インスペクションとリファクタリング、利用箇所の検索やエンティティ名やフィールド名のリネーム、関連のサポートなどが可能です。
PHP 7.3サポート
Heredoc / Nowdocシンタックス、関数/メソッドコールの続くカンマ、instanceof
オペランドとしてのリテラル、list()
リファレンスの代入を含む最新のPHP 7.3をフルサポートします。
Ctrl+Dot 補完
Ctrl+. を候補リストで押すことでアイテムをアロー付きで補完出来ます。すぐに続けてメソッド名を入力出来ます。
PHPDoc 改善
PhpStormは交差型(Intersection Type) “&
”をサポートします。変数をFoo&Bar
としてアノテートすれば、 Foo
型とBar
型を同時に定義出来ます。また双方のクラスのメンバーどちらもサジェストします。
文字列をフォーマットする関数サポートの改善
printf()
/ sprintf()
を使うのが簡単になり、良くある間違いも抑止します。
リファクタリングとインテンション
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はデフォルトでプライベートなプロパティをリネームするさい、コンテクスト内の利用箇所のみを検索するようになりました。
デプロイメント
複数ホストへのリモートデプロイメント
PhpStormはFTP/SFTP/FTPSを使ってリモートサーバーへファイルを(自動で)コピーする機能があります。もちろんローカルでマウントしてあるフォルダを対象とすることも出来ます。サーバーグループを設定することで複数のサーバへまとめてデプロイすることが出来るようになりました。グループも、グループに属するホストも任意の数だけ作ることができ、ワンクリックでまとめて全てのサーバへデプロイできます。
クオリティーツール
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プルリクエスト
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テクノロジサポート
JavaScriptで自動インポート
プロジェクトの依存からJavaScriptで必要なインポートを追加します。これはパッケージ内にTypeScript定義がある場合、またはパッケージがESモジュールとして書かれたソースを含む場合に働きます。
Angularサポートの改善
Angularテンプレートにおけるコード補完と変数、pipe、async pipe、テンプレートリファレンス変数のの定義箇所へのジャンプがより正確になりました。AngularとAngularJSサポート回りで50を超える既知の問題を修正しました。
‘null’と’undefined’チェックの改善
静的解析が賢くなりundefined
または null
の値を検出して、メソッド呼び出しを行ったり、関数に渡したり、プロパティが参照されたりするパターンを検出します。
Vuetifyサポート
Vuetify バージョン 1.1またはそれ以降のコード補完が可能になりました。
Reactサポート改善
全てのライフサイクルメソッドをコード補完でサジェストします。未定義と思われるコンポーネントについても警告します。
IDE
検索ポップアップ
プロジェクトとIDE内をより効率的にナビゲート出来ます。改善されたSearch Everywhereは他のナビゲーションダイアログであるFind Action、Go to class、Go to file、Go to symbolと統合されま、tabキーで別の検索コンテクストに移動出来ます。もちろん全てのナビゲーションダイアログは依然これまでと同じショートカットでアクセスできます。
ハイコントラストテーマ
JetBrainsは全てのユーザーに最高の体験をもたらすことにコミットしています。そこで今回ハイコントラストテーマを今回実装しました。
データベースツール
PhpStormのデータベースツールはDataGripチームの働きにより強化されています:
- Cassandraデータベースサポート
- コード補完の強化
- PostgreSQLのエクステンションのサポート
- テーブルエイリアスインテンションの導入
- タイムアウト後の自動再コネクト
その他の改善:
- デバッグ中に変数を探すのに苦労したことはありませんか?デバッグ中に変数名をタイプすることで絞り込めます
- HTTPリクエストのRun configuration を作成可能になり、実際にHTTPリクエストを行う際自動的に作成されます
- Aliases Referencesがイタリック表示 され、本当のクラス名とエイリアス名を区別しやすくなりました
- compose.jsonとdotfileよりテストフレームワークの設定を自動検出、実行設定を自動作成します
- PHPUnitのsetUpとtearDownメソッドを生成でき、毎テスト実行前または後の処理を記述できます