PHP 8 共用体型のサポート、PHP 用の新しい制御フローエンジン、Extract Class(クラスの抽出)リファクタリング、GitHub プルリクエストの完全サポート、新しい Inspection ウィジェット、OpenAPI のサポートを提供します。
PHP 8 と共用体型のサポートを開始しました。 PHP 8.0 ではプロパティ、引数、戻り値の型に 1 つ以上の型を宣言できるようになります。 PhpStorm はすでにこの機能を完全サポートしており、効率的な移行を支援できます。
共用体型はかつて PHPDoc 経由で提供されていましたが、PhpStorm がそのような出現箇所をハイライトするようになりました。
Alt+Enter クイックフィックスを使用すると、それをネイティブな共用体型に変換できます。
このクイックフィックスは関数の引数、戻り値の型、プロパティなど、共用体型が適用可能な場所ならどこでも機能します。 プロパティについては、デフォルト値も考慮されます。
PHP 8 関連の機能を使用可能にするには、次のいずれかの方法で言語レベルを PHP 8 に切り替えてください。
composer.json
で PHP バージョンの要件を指定します。この場合は PhpStorm が自動的に要件を取得します。PhpStorm は呼び出しを解析し、予想される型を推測し、共用体型に関する問題箇所をハイライトします。
このチェックはプロパティ、引数、戻り値など、あらゆるレベルで機能します。
複雑なコードベースでは、問題を一目で確認するのに役立ちます。 PhpStorm はコードが実行される前でも注意が必要な部分をハイライトします。
禁止されている、あるいは冗長な型の組み合わせはたくさん存在します。 例:
bool|false
Foo|Foo
object|User
iterable|array
または iterable|Traversable
これらはすべて PhpStorm によって無効なものとしてハイライトされます。
単一の null 許容型がある場合、PHP 8 では ?Type
表記か Type|null
を使用できます。
しかし、null と結合された複数の型がある場合、?Type1|Type2
の使用はあいまいであるため禁止されています。
PhpStorm はこれらの違反箇所をハイライトし、変換するための Alt+Enter クイックフィックスを提供しています。
PHP では継承する際、次の基本的なルールに準拠している場合は型を変更できます。
幸い、PhpStorm はコードをチェックして違反箇所をハイライトするため、これらのルールを覚えておく必要はありません。
PHP 8 には、共用体型の宣言のみで使用できる特殊な false
擬似型があります。
これは strpos()
や array_search()
のように標準ライブラリで幅広く使用されており、否定的な結果を示すために他の場所にも適用できるものです。
PhpStorm は不適切な使用箇所をハイライトし、型推論を考慮します。
PHPDoc は追加情報を提供しないため、ネイティブな共用体型を追加した後は不要になるかもしれません。
このような PHPDoc を Alt+Enter クイックフィックスを使用して除去できるようになりました。
PhpStorm は複雑なコードパスを解析し、if-else
ブロック内の条件に意味があるかどうか、あるいは冗長であるかどうかを検出します。
条件と同様に、PhpStorm は instanceof
によるチェックが適切な場合、型階層内の推論型が原因でそれらの結果が常に true になるかどうかをチェックできます。
この新しいアクションを使用すると、選択した任意の式の推論型を表示できます。
コーディング中に式を選択し、ショートカット Ctrl+Shift+P か View | Type Info メニューを使用して式の型をチェックできます。
PhpStorm は変数が確実に null
にしかならない状況を検出できます。 この場合、IDE は式を単純化して分かりやすくすることを提案します。
ruleset.xml
に "exclude-pattern"
セクションがある場合、PhpStorm はこれを考慮して指定されたパス配下のファイルを解析しません。 Composer の依存関係は、エディターの composer.json ファイル内で直接管理できます。
“repositories”
セクションで指定されたカスタムソースがある場合、カスタムパッケージの補完を行うことができます。
ガターアイコンには、カスタムリポジトリのキャッシュの最新状態が表示されるようになりました。
パッケージに対して複数のバージョンがカンマやパイプ(||
)で区切りで指定されている場合、PhpStorm はこのパッケージで利用できるすべてのバージョンを補完します。
これまでは ~
、^
、>=
を入力すると候補が消えていましたが、これらの範囲制約が composer.json で期待通りに機能するようになりました。
PhpStorm はさまざまなサードパーティツールとの統合機能を提供しています。 サポート対象のツールが composer.json で宣言されている場合、レンチアイコンがガターの横に表示されるようになりました。 そのアイコンをクリックすると、環境設定の対応するセクションに直接移動できます。
あるクラスが雑然としており、あまりにも多くの役割を担っている場合、Extract Class(クラスの抽出)リファクタリングを使用してそのクラスのメソッドやプロパティを新しいクラスに移動することでリファクタリングできるようになりました。
移動対象の関数、メソッド、プロパティのいずれかを選択し、Ctrl+T を押してから Extract class を選択してください。
リファクタリングによって新しいファイルが作成され、コンストラクター内でクラスのオブジェクトがインスタンス化され、使用箇所が自動的に調整されます。
PHP コマンドラインツールでリモートインタープリターがサポートされるようになりました。
Preferences/Settings | Tools | Command Line Tool Support の下で新しいツールのエントリを追加し、構成済みリモートインタープリターを 1 つ選択してください。
Laravel Artisan も自動検出されるようになりました! このため、Laravel プロジェクトを開く場合は Ctrl-Ctrl を押してコマンドの入力を開始することができます。 PhpStorm は補完機能を提供し、使用できるコマンドの候補を表示します。
コード内のどこかに宣言されて更新されるものの、読み取られることのない配列がある場合、その配列は冗長である可能性が高く、コードの可読性を損ねている可能性があります。
このインスペクションはこのような状況を検出し、問題の配列を除去してコードの可読性向上を促します。
デフォルト値が指定されていない型付きプロパティは、初期化されていないものとみなされます。 初期化されていないプロパティが読み取られると、TypeError
が発生します(__get()
が定義されていない限り)。
PhpStorm は初期化されていないプロパティを検出し、それらの読み取りを試みているコードをハイライトします。
プルリクエストのワークフロー全体を PhpStorm 内で完結できるようになり、ブラウザーを切り替える必要がなくなりました。 プルリクエストの管理、タイムラインとインラインコメントの表示、コメントとレビューの送信、変更の承認に対応しています。
GitHub プルリクエストを操作するには、ツールバーから、あるいはメインメニューのVCS | Git | View Pull Requests から Pull Requests ツールウィンドウを開いてください。
次に、リスト内のプルリクエストを選択してすべての詳細情報(メッセージ、ブランチ名、作者など)を表示します。
そこから変更されたファイルをチェックしたり、変更にコメントしたりしてレビュープロセスを開始できます(コミットレベルと行レベルの両方に対応しています)。
また、IDE を離れることなくプルリクエストをマージできるようになりました。 プルリクエストに初期状態で対応しているため、ローカルブランチを作成する必要はありません。
PhpStorm 2020.2 は OpenAPI Specifications プラグインをサポートしています。 これは JetBrains が開発した無料プラグインで、OpenAPI 仕様ファイル(openapi.yaml/openapi.json および swagger.yaml/swagger.json)で補完、ナビゲーション、検証の機能を提供するものです。
このプラグインは次の機能も提供します。
エディター右側には、現在ファイル内の問題箇所の概要を表示する新しい Inspections ウィジェットが表示されます。
WebStorm 2020.2 の すべての新機能と改善は、PhpStorm 2020.2 ですぐに使える状態になっているか、プラグイン Marketplace から無料のプラグインをインストールしてご利用いただけます。
組み込みのフォーマッターの代わりに Prettier を使用してコードを整形したいですか? このアップデートでは、以前よりもはるかに簡単にそれを実現できるようになりました。 新しい On code reformat チェックボックスをオンにするだけで、IDE が .js / .ts / .jsx / .tsx ファイルの整形に Prettier を使用するようになります。 その他のファイルタイプも簡単に追加できます。
私たちは過去 1 年間で Nuxt.js のサポート、Vue 固有のコードスタイル設定、TypeScript プロジェクトでの Vue 関連の改善、およびその他多数の機能改善を行いました。 PhpStorm の Vue サポートがかつてないほど高度になりました!
PhpStorm 2020.2 は Linux および Windows ファイルシステムに存在するプロジェクトを処理するため、WSL2 にインストールされた Git をサポートしています。
この IDE はプロジェクトの場所に応じて Git 実行可能ファイルを切り替えることができます。 プロジェクトが WSL から(\\wsl$
パス経由で)開かれている場合、IDE は自動的に WSL から Git に切り替わります。また、IDE 内ではすべての Git 関連機能を使用できます。
2 つのブランチを比較してお互いに属さないコミットを確認する場合、PhpStorm 2020.2 はGit ツールウィンドウではなくエディター内にログを表示します。 これによって十分なスペースが確保され、すべての情報を表示できるようになります。
Git Branches ポップアップメニュー VCS | Branches から Compare with Current アクションを選択してください。
冗長なローカルコミットを Git ツールウィンドウの Log タブで選択し、コンテキストメニューから Drop Commit を選択することで、それらを簡単に除去できるようになりました。
プッシュ前に履歴を整理する目的などで複数のローカルコミットを 1 つのコミットにまとめることもできます。
Git ツールウィンドウで、複数のコミットを選択してコンテキストメニューから Squash Commits… を選択してください。
IDE が裏側で対話的な rebase の処理を実行します。
DataGrip 2020.2 の新機能をご覧ください。掲載されているすべての記事は PhpStorm でも使用できます。
セル内に巨大な値がある場合に、それを独立したパネルで表示または編集できるようになりました。 また、右側のツールバーを使用してソフトラップモードを切り替えられるようになりました。 コードエディターのすべての機能をデータの確認や編集に活用してください。
新しい SQL 言語、Google BigQuery を追加しました。 BigQuery はまだ完全にサポートされていませんが、部分的なサポートから開始します。 現在のところ、PhpStorm はGoogle BigQuery を使用している場合にクエリを正確にハイライトし、コーディング支援機能の提供を開始しました。
変更を表すクエリをデータエディター内でレビューできるようになりました。 保留中の変更がある場合には DML ボタンが有効になります。 PhpStorm は JDBC ドライバーを使用してテーブルを更新するため、このクエリはデータ変更用の正確な SQL ではありませんが、ほとんどの場合は同じものになります。