今年の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
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 + Enter
isset()
で 置き換えることができます
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サポートなど。
そして、これがこのリリースの主な機能を示すビデオ(英語)です:
それは今のところすべてです。質問、願い、バグレポート、考えなど、フィードバックをお待ちしております。以下のコメントにそれらを残してください。