composer.json
を変更することなく、プロジェクトに対して任意の PHP バージョンを設定できるようになりました。 これは、新しい PHP バージョンに実際に移行する前にコードベースの互換性を確認したい場合などに役立ちます。
PHP 関連の設定をより簡単に探して変更できるよう、対応するセクションをトップレベルの Settings / Preferences | PHP に移動しました。
PhpStorm 内部でファイルをプレビューするためのタブを開く新しいアイコンをエディターの右上に追加しました。 このプレビューは、HTML / PHP ファイルに対応しています。
PHP ファイルを開いてコードを入力すると、即座に結果がプレビューに反映されます。 他のウィンドウに切り替える必要はありません! リンク先の CSS / JavaScript ファイルの変更は、プレビューにも反映されます。
PhpStorm は Settings/Preferences | PHP のプロジェクト設定で指定されたローカル PHP インタープリターを使用します。 Docker やその他のリモートインタープリターはサポートされていません。
Preferences | Tools | Web Browsers で 1 つ以上のブラウザーを有効にして For HTML files チェックボックスにチェックを入れると、プレビューアイコンをオンにできます。
Alt+F2 のショートカットでプレビュータブを開くこともできます。
多くのコンテンツ管理システムやフレームワークでは、複数のアプリケーションで同じデータベースを使用する場合に役立つテーブル接頭辞を指定することができます。
旧バージョンの PhpStorm では SQL クエリに接頭辞のマーカーが含まれていたため、このようなケースでデータベースとの連携が失われていました。
このバージョンから、.phpstorm.meta.php ファイルで接頭辞を指定できるようになりました。 メタファイルと SQL 接頭辞の指定方法に関する詳細は、ヘルプ記事を参照してください。
ブール式に true
または false
リテラルが含まれている場合、PhpStorm はそれを単純化するのを支援します。 Alt+Enter クイックフィックスを使用すると、冗長なロジックを排除して可読性を向上させることができます。
厳密な比較に使用される ===
演算は、一方のオペランドの型が他方と同じでない場合は常に false
を返します。
PhpStorm はこのようなケースを潜在的なバグの原因とみなし、ハイライトします。 PhpStorm はすべての型推論情報を考慮し、不明瞭なケースで問題を検出するのを支援します。
以前は関数呼び出しに変数の代入を記述し、パラメーター名の代わりにするのは一般的な手法でした。
PHP 8 では、Alt+Enter でそのような代入を実際の名前付き引数に置換できます。
このコードスニペット isset($a) ? $a : $b;
は $a ?? $b
とまったく同じであるため、PhpStorm はこれを置換する Alt+Enter クイックフィックスを提案します。
本文の内容が同じになるような変更を行った後、if
または else
ブロックが冗長になる場合があります。 PhpStorm は共通部分の抽出またはブロックのマージを提案します。
`if`
で Alt-Enter を押し、メニューから Invert `if` statement を選択します。 すると、条件が反転され、ロジックを維持するために必要なコードの調整が実行されます。 早期リターン手法がお好みであれば、このアクションがコードのリファクタリングに役立つでしょう。
名前空間の先頭にあるバックスラッシュが冗長になっている場合があります。 PhpStorm はそのようなバックスラッシュを除去可能かどうかを判断するのに役立ちます。
foreach ループ内のキーと値の変数が、他の変数やパラメーターの名前と競合する場合があります。 PhpStorm は、エラーが発生しうるすべての箇所をハイライトします。
PhpStorm は、文字列補間に含まれる冗長な波括弧を安全に除去してコードを整理できる場合にハイライトを表示します。
宣言されている型が値の型と一致していない場合、Alt+Enter でその型をすばやく更新できます。 あるいは PHP 8 の場合、PhpStorm は共用体型の使用を提案します。
isset()
関数を有効に使用できるのは、配列と変数に限ります。 その他すべての場合は、オペランドが null
でないかどうかを検証するのが適切です。 Alt+Enter で isset()
チェックを null
チェックに置換できます。
PhpStorm は文字列内にある http://
プロトコルの使用箇所をハイライトし、それを Alt-Enter で https://
に変更するクイックフィックスを提供します。 クイックフィックスを使用して URL を無視リストに追加することもできます。
PhpStorm は $
needle
と $haystack
、または $x
と $y0> といった典型的なパラメーター名と戻り値の誤用をハイライトします。 このような誤用は潜在的なバグの原因になったり、コードを読む人を困惑させたりする可能性があります。
VCS に変更をコミットする前にコードインスペクションプロファイルを選択できるようになりました。 歯車アイコンをクリックしてコミットオプションを表示し、Analyze code(コードの解析)チェックボックスにチェックを入れ、Configure(構成)をクリックしてから目的のプロファイルを選択してください。 プロファイルは、Preferences / Settings | Editor | Inspections で作成できます。
PHP のループ構文(foreach
/ for
/ while
/ catch
ブロックなど)ではスコープが分離されていません。 ブロック内の変数のみを名前変更したい場合、これでは都合が良くありません。
PhpStorm 2021.1 では、このようなブロックのために合成スコープが導入されています。このため、Rename リファクタリング(Shift+F6)をより直感的に実行できるようになります。
PhpStorm 2021.1 は変数の使用状況を解析し、言語の参照を自動的に挿入します。
例えば、ある変数が preg_*
関数で使用されている場合、PhpStorm はそれがパターンであることを認識して正規表現をハイライトします。
PhpStorm が require
および suggest
セクションの両方で拡張機能を考慮するようになりました。
PhpStorm は、ある拡張機能が composer.json
で推奨扱いで登録されているものの、extension_loaded()
または function_exists()
のようにチェックなしで使用されている場合に警告を表示します。 クイックフィックスを使用して、このような拡張機能を require/require-dev
に移動できます。
このリリースでは、主に安定性と品質に焦点が当てられました。 ユーザーと JetBrains のチームメンバーが課題トラッカーに投稿した課題のうち、合計で 2246 件を解決しました。 その中でも特に注目すべきものを以下に掲載しています。
Code With Me は、JetBrains の共同開発およびペアプログラミング用のツールです。 このツールは PhpStorm 2020.3 で始めて導入されましたが、今回のリリースでは多数の重要な改善が行われています。
プロジェクトに必要なアクセスレベスを設定し、ゲストにリンクを共有できます。 相手は共同作業を行うために、IDE をインストールする必要すらありません。また、このプラットフォームには組み込みの音声通話とビデオ通話のほか、チャットメッセージング機能も備わっています。
特にセキュリティに対する配慮が必要な企業の場合、オンプレミス版の Code With Me を社内のプライベートネットワークにインストールして安全に運用できます。
HTTP クライアントで Add environment file(環境ファイルの追加)をクリックして Private を選択することで、SSL 設定を定義できるようになりました。 IDE は SSL 構成を追加可能なファイルを自動的に作成します。具体的には、clientCertificate
/ hasCertificatePassphrase
/ clientCertificateKey
/ verifyHostCertificate
です。
本文の表示方法を決めるオプションを含む、新しい瞳のアイコンが追加されました。 Text / JSON / HTML / XML 間でモードを切り替えたり、行番号を有効化したりできます。また、Copy Response Body to Clipboard(応答本文をクリップボードにコピー)をすばやく実行するための新しいボタンが追加されています。
IDE のウィンドウの端にタブをドラッグすると、エディターが分割されます。 その後、タブをダブルクリックすると、そのタブに合わせてエディター領域が最大化されます。 タブをダブルクリックすると、元のサイズに戻ります。
JSONPath クエリ言語を使用し、JSON ドキュメント内を検索できます。 新しいアクションは、Edit | Find | Evaluate JSONPath の下にあります。
PhpStorm now supports the newline-delimited JSON Lines format used for working with structured data and logs. IDE は .jsonl、.jslines、.ldjson、.ndjson のファイルタイプを認識します。
フォントのバリエーションやフォールバックフォントを調整できるようになりました。 この新しいオプションは、Settings / Preferences | Editor | Fonts の Typography Settings にあります。
WebStorm 2021.1 のすべての新機能と改善点は、PhpStorm 2021.1 でも初期状態で、またはプラグイン Marketplace から無料のプラグインをインストールして利用できます。
数回クリックするだけで、Stylelint を使用して CSS の問題を解決できるようになりました。 ファイル内の問題箇所にマウスカーソルを合わせるか、キャレットを配置したあと、Alt+Enter を押してから Stylelint: Fix current file(Stylelint: 現在のファイルを修正)を選択するだけです。
また、Settings / Preferences | Languages & Frameworks | Style Sheets | Stylelint で構成ファイルのパスを指定できるようになりました。
When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. あるいは、セレクターにフォーカスがある状態で F1/Ctrl+Q を押し、この情報を Documentation ポップアップに表示することもできます。
新しいプルリクエストを作成するには、+ アイコンをクリックするか、Git | GitHub | Create Pull Request を開いてください。
新しいダイアログには、次のように必要だと思われる機能がすべて搭載されています。
DataGrip 2021.1 の新機能をご覧ください。掲載されているすべての機能は PhpStorm でも使用できます。 以下に掲載しているものは、そのうちのごく一部になります。
データベースエクスプローラーのユーザーに対して Cmd/Ctrl+F6 で呼び出せる Modify user(ユーザーの変更)ウィンドウに、オブジェクトに対する権限を付与するための UI が実装されました。
この UI は、PostgreSQL / Redshift / Greenplum / MySQL / MariaDB / DB2 / SQL Server / Sybase に対応しています。
これは、単純なステートメントをデータベースエクスプローラーから直接生成できるソリューションです。 エクスプローラーでオブジェクトを右クリックすると、特殊なライブテンプレート項目を含むリストが表示されます。
詳細については、「独自のコンテキストライブテンプレートを作成する方法」を参照してください。