PhpStorm 2021.1:PHPおよびHTMLファイルのプレビュー、20以上の新しい検査、およびコードとのペアプログラミング





今年のPhpStormの最初のメジャーリリースをお届けできることをうれしく思います。カットの下には、すべての変更と新機能の詳細な分析があります。



PHP



  • 組み込みのブラウザーとローカルのPHPインタープリターを使用して、エディターでPHPファイルとHTMLファイルを直接プレビューします

  • 20 PHP.

  • , PHP, — Settings / Preferences.

  • PHP composer.json.

  • SQL, RegExp . . .

  • SQL- CMS.

  • .



IDE



  • Split .

  • JSONPath JSON-.

  • JSON Lines.

  • Preferences | Editor | Font.



Docker



  • Dockerfile.

  • Dockerfile.



Version Control



  • - GitHub — IDE .



Code With Me



  • JetBrains PhpStorm . Code With Me , - .





PhpStorm 2021.1は、Webサイトまたはツールボックスアプリからダウンロードでき ます



これは簡単なことですが、今ではすべてについて詳しく説明しています。



PHP



ステータスバーによるPHPバージョンの選択



以前のリリースでは、ステータスバーにPHPバージョンインジケーターを追加しました。2021.1では、で指定されているバージョンに関係なく、バージョンを変更できます composer.json



これにより、たとえば、コードと新しいPHPバージョンとの互換性をすばやく確認できます。









PHP設定を簡単に見つける



PHP関連の設定のほとんどが[設定] / [設定] | [設定]で利用できるようになりました PHP









エディターでPHPおよびHTMLファイルを表示する



エディタの任意の場所にカーソルを合わせると、ブラウザアイコンを含むポップアップウィンドウが右上隅に表示されます。アイコンをクリックすると、選択したブラウザで現在のファイルが開きます。



ここにPhpStormアイコンもあります。それをクリックすると、ファイルが開いてエディターでプレビューできるようになります。



プレビューは、HTMLファイルとPHPファイル、および関連するすべてのCSSファイルとJavaScriptファイルで機能します。







ファイルを開いて入力を開始します。プレビュータブにすべての変更がすぐに表示されます。



PhpStormは、[設定] / [設定] | [設定]でプロジェクトに指定できるローカルPHPインタープリター使用し ます 。 PHP..。Dockerおよびその他の非ローカルインタープリターはまだサポートされていません。



エディタにアイコンがない場合は、[設定] | [設定]でアイコンを確認する必要があります ツール| Webブラウザの場合、少なくとも1つのブラウザが選択され、[ HTMLファイルの場合]チェックボックスがオンになっています



Alt + F2を押してプレビュータブを開くこともできます。





SQLクエリでのテーブルプレフィックスの使用



多くのCMSおよびフレームワークでは、テーブルにプレフィックスを付けることができます。これは、同じデータベースを複数のアプリケーションに使用する場合に役立ちます。



以前は、テーブル名が動的に生成されたため、データベースツールとの統合が失われていました。



これで、.phpstorm.meta.phpファイルでプレフィックスを指定できます ヘルプページメタファイルとテーブルプレフィックスの指定方法の詳細を読むこと ができ ます



Drupalアプリケーションに次のリクエストがあるとしましょう。











ご覧のとおり、PhpStormはテーブル名も列名も解決できません。これは、Drupal構成でテーブルプレフィックスを指定したためです。



これを修正するに.phpstorm.meta.php



は、次の内容のファイルプロジェクトに追加します



namespace PHPSTORM_META {
 override(
  //       SQL-
   sql_injection_subst(),
   map([
     '{' => "PS2021_", //  `{`   SQL    
     '}' => '',       //   `}`    
   ]));
}
      
      







これで、PhpStormはSQLクエリをデータソースにバインドし、オートコンプリート、データビューへの移行などの機能を提供できるようになります。







ちなみに、リクエストが連結によって形成された場合、これも機能します。



<?php
const DB_PREFIX = "mydatabase_";
$sql = "SELECT * FROM " . DB_PREFIX . 'table_name';
      
      







検査と迅速な修正



このリリースでは、開発の初期段階でエラーを防ぐために、20を超えるさまざまなチェックとクイックフィックスを追加しました。検査の完全なリストを表示し、[設定] / [設定] | [設定]で構成できます 編集者| 検査



問題が発生した場合は、問題にカーソルを合わせ、Alt + Enterキーを押して、提案されたクイックフィックスを選択します。



そして今、いくつかの新しい検査についてもっと詳しく説明します。



同じボディを持つ `if`ブロックを単純化する



一部のブロック は冗長if



else



ある可能性があります。たとえば、それらを変更して、その結果、それらのボディが完全にまたは部分的に同じになるようにすることができます。



PhpStormはそのような余分なブロックを検出し、それらを削除することを提案します。











さらに、体の一部だけが繰り返される場合、PhpStormはそれだけを抽出することを提案します。







`if`の反転



Alt + Enterを押していずれかを押すif



と、「Invert`if`ステートメント」コマンドの入力を求められ ます 状態を逆転させ、ロジックを維持するために必要な調整を行います。 アーリーリターン



を使用したい場合は 、コードをリファクタリングするときにこの検査が非常に役立ちます。 ループでは、これも機能します:

















`isset`を??に置き換えます



コード isset($a) ? $a : $b;



は同一 $a ?? $b



であるため、PhpStormはそれを強調表示し、交換のための迅速な修正を提案します。







, —  , .



Code | Run Inspection by Name... , `isset` can be replaced with coalesce. .



`isset` `!== null`



使用 isset()



は、配列と変数に対してのみ意味があります。それ以外の場合はすべて、オペランドのnull



を確認することをお勧めし ます。



PhpStormはそのような場所を強調表示し、Alt + Enterisset()



置き換えることができます null











`foreach`の変数は、すでに宣言されている変数を上書きします



ループ内のキーと値 foreach



の変数は、他の変数またはパラメーターの名前と競合する可能性があります。



問題は、PHPにはそれらのための個別のスコープがないことです。つまり、値は上書きされます-おそらく予想に反します。



PhpStormは、バグの潜在的な原因であるため、そのような場所を強調表示します。







文字列内の変数に不要な中括弧



PhpStormは、文字列補間のコンテキストで冗長な中括弧を強調表示し、それらを削除してコードをよりクリーンにするように促します。







ブール式の簡略化



ブール式にリテラルtrue



または が含まれている場合は、 false



おそらく単純化して読みやすくすることができます。



PhpStormはそのような式を強調表示し、Alt + Enterを使用してそれらを単純化できるようにします。







互換性のないタイプとの厳密な比較



オペレータは、 ===



常に返されます false



オペランドが同じ型ではない場合。







PhpStormは、バグの原因となる可能性があるため、このような場所を強調表示するようになりました。同時に、PhpStormはすべての推定タイプを考慮に入れ、最も明白でないケースで問題を見つけるのに役立ちます。







安全でないリンクhttp://



http://



行でのプロトコルの使用法 が強調表示されるようになりました。IDEは、(Alt-Enterによる)http://



への 迅速な置き換えのためのクイックフィックスを提供します https://



これを使用して、無視されたリンクのリストにURLを追加することもできます。







不審な名前の組み合わせ



PhpStormは、$needle



and $haystack



または $x



and などのパラメータまたは戻り値の命名におけるいくつかの一般的なエラーを強調しています $y







通常、このようなエラーはバグの兆候であるか、少なくとも非常に混乱を招きます。







`define`を` const`に置き換える



PhpStormは、を介した定数宣言をdefine



より読みやすい構文に置き換えることができる場合を検出し ます const



Alt + Enterを使用すると、置換を行うことができます。







コミット前検査の構成



Gitにコミットする前に、コードの分析に使用する検査プロファイルを選択できるようになりました。



歯車のアイコンをクリックし、[コード分析]チェックボックスをオンにして 、[構成]をクリック し、目的のプロファイルを選択します。 [設定] / [設定] | [設定]で







独自のプロファイルを作成できます 編集者| 検査



その他



リファクタリングの人工スコープ



サイクルは foreach



for



while



およびブロック catch



PHPには、スコープに絶縁されていません。これは、変数の名前を変更するときに、目的のブロック外の変数の名前も変更するため、かなり不便です。



PhpStorm 2021.1では、このようなすべてのブロックに人工スコープを追加しました。これで、名前変更リファクタリング(Shift + F6)を呼び出すときに、名前の変更がより直感的になります。









自動舌注射の改善



以前のバージョンのPhpStormは、引数の言語のみを定義できました。たとえば、文字列を関数に渡す preg_*



と、正規表現として強調表示されます。



ただし、変数を使用した場合、その値はまったく強調表示されませんでした。



PhpStorm 2021.1は変数の使用を分析し、必要な構文を自動的に実装できます。









composer.jsonの `suggest`ブロックの拡張機能を使用する



コードベースには、PHP拡張機能のクラスを含めることができます。これまでのところ、PhpStormは、これらの拡張子がrequire



ファイル内のセクション追加されているかどうかを確認 しています composer.json







PhpStorm 2021.1は、 `require`セクションだけでなく、` suggest`セクションでも拡張機能の仕様を考慮に入れています。



さらに重要なことに、PhpStormは、拡張子がに追加さsuggest



ているかどうかを警告するようになりましたcomposer.json



、型チェックextension_loaded()



function_exists()



なしで使用されてい ます



特別なクイックフィックスを使用すると、拡張機能を追加できます require/require-dev.











重要な修正



ユーザーとJetBrainsチームがPhpStormトラッカーで開いた2400を超えるチケットを修正しました。最も興味深いもののいくつかは次のとおりです。

  • WSL 2 Docker (WI-53396).

  • Quality tools docker-compose exec- (WI-55840).

  • PHP (5000 ) (WI-31569).

  • (WI-58306).





Code With Me



Code With Meは、JetBrainsの新しい共同開発およびペアプログラミングツールです。もともとはPhpStorm2020.3で導入されました。このリリースでは、ツールが大幅に改善されています。







まず、共犯者のアクセス権を柔軟に設定できるようになりました。



次に、ゲストはIDEをインストールする必要さえありません。コンソールコマンドを実行するだけで、無料のクライアントが自動的にダウンロードされます。



第三に、組み込みの音声通話とビデオ通話、およびメッセンジャーが追加されました。



エンタープライズチームやその他のセキュリティチームは、プライベートネットワーク上でCode WithMeサーバー実行できるようになり ました。



JetBrainsのWebサイトでCodeWithMeの詳細を読んでください



IDE



分割モードでのタブの展開



タブを画面の目的のコーナーにドラッグするだけで、分割モードで複数のタブを同時に開くことができます。 タブダブルクリックして完全に展開すること



もできる ようになりました。ダブルクリックして、タブを前の状態に戻すこともできます。









JSONPathのサポート



JSONPathクエリを使用して、大きなJSONドキュメントをすばやく検索できるようになりました。この機能は、[編集]、[編集]のセクションで利用できます 検索| JSONPathを評価します









JSONLinesのサポート



PhpStormは現在サポートされていJSON行フォーマットを 構造化データとログでの作業のために。IDEは、 .jsonl.jslines.ldjson、および.ndjsonファイル認識します









タイポグラフィの設定



メインフォントとフォールバックフォントを変えることができます。新しいオプションは[設定] / [設定] | [タイポグラフィ設定]利用できます 編集者| フォント







Docker



Dockerfileでのイメージ名の完成



イメージの名前の入力を開始すると、PhpStormはDockerHubで利用可能なイメージのリストを提供します。







多段Dockerfilesでの折りたたみ



Dockerfileで複数のセクションを使用する場合 FROM



は、それらのいずれかを折りたたむことができ、読みやすくするために1行で区切られます。







Dockerの実行をキャンセルする



[サービス]ウィンドウから、実行中のDockerfileの実行を簡単に停止できます 起動したアイテムのコンテキストメニューから[展開の停止]を選択し ます。





GitHubプルリクエストの改善



プールrekvestを作成するには、[プルリクエスト]ウィンドウの[+]をクリックする か、 Git |に移動し ますGitHub | プルリクエストを作成します



更新されたダイアログでは、次のことができます。

  • 使用可能なブランチのリストからベースブランチとヘッドブランチを選択します。

  • [ファイル]タブで変更されたファイルを表示します。

  • プルリクエストの名前と説明を編集し、レビュー担当者と実行者を割り当て、タグを追加します。

  • ドラフトプルリクエストを作成します。









PhpStorm 2021.1は、プルリクエストテンプレートもサポートしています。pull_requst_template.md



プロジェクトにファイル追加し、 その中にテンプレートテキストを指定します。新しいプルリクエストを作成するたびに、この説明が自動的に入力されます。



Gitコミットのテンプレートサポート



PhpStormは、コミットメッセージを作成するときにcommit.template



、Git構成パラメーターで指定されたテンプレートを尊重するようになりました



HTTPクライアント



SSLサポート



これで、HTTPクライアントでSSL設定を指定できます。[環境ファイル追加]ボタンをクリックして、[プライベート] を選択します :ファイルには、SSLの設定を指定することができたで作成されます clientCertificate



hasCertificatePassphrase



clientCertificateKey



verifyHostCertificate













OpenAPI / Swaggerの改善



PhpStormは、OpenAPI仕様と組み込みのSwaggerUIをサポートしています。



Swagger UIは、を介して接続された外部ファイルの仕様をサポートするようになりました $ref











DBツール





PhpStormには、組み込みのDataGrip機能( アクセス許可インターフェイス、ライブテンプレートコンテキストテンプレート、簡略化されたナビゲーションなど)が含まれています。これらの機能の詳細について は、同僚によるDataGrip2021.1リリースの概要ご覧ください。



ウェブ





そしていつものように、PhpStormにはWebStorm 2021.1からのすべての更新が含まれ ています:JavaScriptとTypeScriptのよりスマートなオートコンプリート、拡張されたStylelintサポートなど。






そして、これがこのリリースの主な機能を示すビデオ(英語)です:





それは今のところすべてです。質問、願い、バグレポート、考えなど、フィードバックをお待ちしております。以下のコメントにそれらを残してください。



All Articles