ダウンロード
(pre-release)
Stable
1.70.18851
改善点
"numeric-string"型が遵守されるようになり、数値文字列からの暗黙的変換で不要な警告が出なくなりました。- さまざまな制御フロー分析の整理と安定性の向上。
PHPDoc
- ネストしたPHPDocタグの解析がより寛容になり、PHPDoc解析の堅牢性が向上しました。
@globalの出現箇所のマッチングを修正しました。- PHPDocタグでの型名コード補完を修正しました。#892 (comment)
IntelliSense
$GLOBALS['NAME']がマウスホバーやリファクタリング機能でより具体的に処理されるようになりました。- 配列に複数の要素型がある場合の動的プロパティの型推論を修正しました。
WordPress
- より多くの非標準的なWordPress型構文との互換性を追加しました。
- 構造化されたWordPress型構文の習慣への対応を拡張しました。
Stable
1.70.18840
マイナーな改善点
- グループで定義されていても、Laravelルートがより正確に認識されるようになりました。
- 非Laravelプロジェクトのためのパフォーマンスとメモリ最適化。
- ジェネリックテンプレート型の処理を改善します。これらがベースクラススコープに渡された場合に未バインドである場合に対応しています。 #2501, #2504
- 星型提案AIモデルが更新されました。
- WordPressの規約をより尊重し、エラー報告が少なくなりました。
- IntelliSenseにスタブを追加するコードアクションを追加しました (
php.stubs設定)。これにより、PHPブックに定義されている未知の関数またはクラス名の問題が修正されます。
中国語のローカライズ
拡張機能のUIとIntelliSenseが中国語で表示されるようになりました。これは、VSCodeの表示言語が zh-cn に設定されている場合に自動的に設定されます。
Stable
Stable
1.69.18673
お気に入りの候補
最も可能性の高いメンバー補完が星印 ★ でマークされ、リストのトップに表示されます。これにより、より少ない入力で正しいアイテムを迅速に見つけることができます。

入力を続けると何も変わりません。この機能は自然に普段のワークフローに溶け込み、邪魔になりません。
星印の候補は、
"php.completion.starredSuggestions"設定を使用して無効または有効にできます。 注: この機能は Alpine Linux (musl) ではサポートされていません。
新機能
- パラメータの型ヒントを追加するためのコードアクション。
- Livewire フレームワークによって定義されたメソッドが IntelliSense に追加されました (
View::layout(),View::title())。 #2530
小さな変更
Premiumユーザーには、ウェルカム画面に「購入」ボタンが表示されなくなりました。- Alpine/musl 用の専用インストーラーが再び提供されます。 #1020
PHP0412(未定義プロパティ) はプロパティの代入に対して報告され、後続の読み取りには報告されません。これは他のコード分析ツールとより一貫しており、対応するツールチップと一緒に使用することでより理にかなっています。また、プロパティが@propertyドキュメントブロックで指定されている場合やマジックな__get/__set関数がある場合、この警告は報告されません。
修正と改善
Stable
1.68.18590
機能
- PHP 8.5
(void)キャスト。 - 型階層のサポート。
- カスタムのWordPressアクションとフィルターのコード補完。
- PHPオープンタグ('<?php' など)のコード補完。
修正
Stable
Stable
Stable
1.67.18497
Laravel
Storage::fake('')が処理され、後続のStorage::disk('')がassertメソッドを持つFileSystemAdapterを返すことが知られています。\Pest\Laravel\actingAs()は、ArchitectableやBrowsableトレイトを含む、より具体的なTestCaseクラスを返します。
マイナーフィーチャー
- 新しい
URI拡張は、古いバージョンのPHPで使用された場合にも、 PHP 8.5以降で利用可能として適切に報告されます。 - Pestの高次テストのためのコード補完、
BrowsableおよびArchitectableトレイトを含む。 - オプションのパラメータを持つクロージャー/コール可能に対するPHPDocアノテーションを尊重します。#1000
- コードアクション:
Remove Unnecessary Spread。 - コードアクション:
cloneをclone withに置き換え。 - 可変引数にインレイヒントを表示しません(意味がありません)。
- 診断 TraitMethodConflict
PHP2447。#1002 - エラートレラントパーサーの初期実装。
- 関数呼び出し内でのスプレッド演算子は、提供済みの引数と配列キーが競合しないか確認します。
修正
- NEONファイル(PHPStan構成)に関する警告を避けるため、実際にファイルが
.phpである場合には発生しません。.phpのPHPStan構成はサポートされていません。 "string"値に対するマウスホバーとナビゲーションは、常に同名のグローバル関数に移動するのではなく、文字列が使用されるパラメータがcallableの場合のみです。Matchという名前のクラスで不要な空行を修正しました。#984- Laravelの
enum_value()の誤った戻り値タイプを修正しました。 - 構文エラーに関する誤ったメッセージを修正しました。
interfaceに対する@extendsチェックを修正。#2513- 無名関数のオプション引数を尊重します。
trait内でのself::によるプライベートconstの参照。#1004
Stable
1.66.18408
小さな機能
パラメータ検証
Closureと間接関数呼び出しのパラメータ検証を追加しました。
#2503

リファクタリング、参照、およびナビゲーション
特定のコードパターンで"string"値を介したリファクタリング、参照、およびナビゲーションを改善しました。
new ReflectionMethod(FQN::class, "HERE");など。
#2502

Laravelサポート
Laravelコントローラーアクションメソッドの補完サポートを追加しました。
#2502

エディターの洞察&ナビゲーション
コード分析と同じロジックを使用して、マウスホバーとナビゲーションを強化し、より詳細なメソッド結果を提供します。
これにより、生成されたスタブ、ヘルパー、オーバーロードされたメソッドの可視性が向上し、エディターが内部的に実際に見ているものが明確になります。

修正
@var注釈でClosure型名のセマンティックハイライトと未使用のuseチェックを修正。- SymfonyポリフィルがIntelliSenseで欠落する問題を修正し、ポリフィルでの誤った非推奨警告を回避。
@formatter:offの動作を修正して、元の空白とブレースの配置を正しく保持するようにしました。
Stable
Stable
1.66.18374
デバッグ
- 関数の戻り値のサポートを追加しました。関数結果を調査するための一時変数は不要です。ステップアウト後に変数ペインで戻り値をキャプチャして表示し、ソース関数を明確に識別します(例:
strtoupper())。 - launch.json の
XdebugSettingsのサポートを改善しました。DBGp の機能(max_data、max_children、max_depthなど)を確実に上書きできます。 #2450
マイナー機能
- コード補完で
@pure(および@phpstan-pure、@psalm-pure)タグが使用できるようになりました。この機能はまだコード分析では使用されていません。 - メモリ使用量の最適化。
- 文字列結合を文字列補間で簡素化するコードアクションは、より多くの可能なケースを処理します。
- PHP
7.xと8.xの間のマイナーな構文の違いが考慮されます。すなわち、名前空間名内の準予約トークンです。PHPバージョンが変更されたときに開かれているPHP文書内の構文も再評価されます。 #963 および類似の問題を修正。 - PHP 8.5 URI エクステンションがワークスペーススタブリストに追加されました(デフォルトでは有効になっていません - "Workspace Stubs" コマンドを参照)。
修正
vendorディレクトリ外の非標準的なinstallPathを持つ Composer パッケージが二重にインデックス化およびキャッシュされません。これにより、IntelliSenseでの二重出現、不要なRAM使用量、初期CPU使用量が修正されます。また、コードフロー分析および影響を受けるプロジェクト(Drupalなど)全体のエディターの体験が改善されます。- 可変引数パラメーターの配列型アノテーションに対応。 #2489
- 不明なタイプのクラスメンバーに対するセマンティックハイライトが機能します。すなわち、
$unknown->member。 .blade.phpで、エディターにテンプレーティングエンジンによって生成された「コードビハインド」に対するコードアクションがリストされていました。これらのコードアクションは注意を散らし、意味をなさず、無効なコード変更を生成していました。 #985(2)- ドキュメントコメント内のセマンティックカラーを修正しました。ドキュメントが編集中または保存された場合に色が付かない。
- 定数
trueおよびfalseを使用した条件付き@returnアノテーションを改善。 - ワークスペースに無効な
class_alias()またはconstant()がある時のコード補完が欠如している問題を修正。 - NEON ファイルの解析に関する修正。 #992
- メソッドがスコープ外で宣言されているが、そのプロトタイプがされていない時の
protected関数可視性チェックを修正。 #2496 try/catchのコードフロー分析における、finally内のgotoのラベルに関する修正。- 無効なクラス名または定数名が
define()またはclass_alias()関数で導入された場合のコード補完を修正。 - 設定
"php.format.exclude"の修正により、ワークスペース相対パスと共に動作するようにしました。 2499 ArrayObject::exchangeArray()のパラメーターシグネチャを修正。 #2494- ユニオン型でのコード補完およびマウスホバーを実装。 #2492
Stable
1.65.18327
新機能
- PHP 8.5
cloneが新しい構文およびオプションの引数をサポートする関数として。 #2478 - PHP 8.0 参照可能な文字列構文。 #2479
- クラスプロパティフックのための CodeLens を有効化しました。 #2476
- 定数とパラメータ値(数値、文字列、および
null)を比較可能にする新しい@return条件付き注釈、例:/** @return ( $name == null ? false : int ) */ function foo( $name ) { return $name === null ? false : strlen($name); }または
/** @return ( PHP_MAJOR_VERSION >= 8 ? string[] : array|false ) */ function foo() { ... }使用可能な演算子は、型比較のための従来の
isに加えて、新たに==、<=、>=、<、>です。 explode()関数がPHPバージョン固有の戻り値型注釈で表示されます(ツールチップ内、型解析による、生成されたドキュメント内)。 #860- インターフェイスおよび列挙型に特定の色を追加しました(ユーザーのテーマでサポートされている場合)。
- プロパティフックの型ヒントにおける型名の色を追加しました。
修正
- 列挙型のケースのための CodeLens を修正しました。 #2482
- 診断において生成された
_ide_helper、_laravel_idea、および_laravel_ideを尊重します。 #974, #2486 - 新しいスコープにバインドされた
Closure内での不正なメンバー可視性に関する誤った警告を修正しました。 - 現在のスコープで表示されないクラスプロパティでのナビゲーションとマウスホバーが動作します。
- 名前空間名での
Echoによる構文エラーを修正しました。 - すべての IntelliSense 情報を曖昧にする
phpstan/php-8-stubsコンポーザーパッケージが存在する場合の型推論を修正しました(より遅く、精度が低くなります)。 #2481 - まれに発生する言語サーバーのクラッシュの可能性を修正しました。 #979
未使用クラスメンバーのハイライト
直接使用されていないクラスメソッド、定数、およびプロパティは、現在、薄く表示されます。
Stable
1.64.18270
最適化
エディターで主要なパーサー最適化を導入しました。PHPエディターはインクリメンタルな変更を追跡し、コードを遅延的に解析するため、編集が重要でない場合は解析を完全にスキップします。これにより、入力中のCPU使用率が約90%削減され、大きなPHPファイルで特に顕著です。
さらに、初期インデックス作成が最適化されました。それでも、パフォーマンスを向上させるためにワークスペースフォルダをウイルス対策スキャンから除外することをお勧めします。
最後に、CodeLensのサポートも改善されました。主に基礎となるアルゴリズムが再実装されたため、CPUの使用量が大幅に減少しました。
修正
.editorconfigファイル内での補完を修正しました。候補には可能なフォーマットルールやコードアクションの設定が含まれます。is_numeric()型推論を改善しました。- CodeIgniter 3プロジェクトでのライブラリサポートを改善しました。
- PHPDoc内の予期しない
!に対する診断位置を修正しました。 empty-string型ヒントを伴う複数の否定@phpstan-assert-if-***注釈が正しく解決されるようになりました。#967- 対応する診断が抑制されている場合、コードを薄暗くしたり取り消し線を引いたりしません。
- クラス階層が完全に知られていない(基底型が不明な)場合、
catch句内での誤ったクラスの報告は行いません。 - 編集された構造化配列型の配列項目にアクセスする際の誤警告を修正しました。#969
Keep*OnOneLine設定が有効な場合の空行処理を修正しました。#964- リネーム時に無効な新しい識別子は、詳細を表示したポップアップメッセージを表示します。
- 特徴適応ブロックからメソッドの参照を正しく見つけ、適応ブロックによってリネームされたものも含みます。
ReflectionMethod::__construct()の誤った廃止勧告を修正しました。
軽微な機能
@suppress(または@suppresswarnings)タグが選択されたPHPMDコードを認識します。empty-string型ヒントが認識されます。- 常に偽となる厳密な比較の診断。#971
- 従来のコンストラクタの廃止チェックがより詳細になりました。
Stable
1.63.18172
マイナー機能
- インライン PestPHP テストケースランナーサポート。 @MrPunyapal
- 引数の文字列値提案のコード補完。
@psalm-assert-if-true、@psalm-assert-if-falseをサポート。@phpstan-assertまたはpsalm-assertを=を前に付けた型ヒントとともにサポートし、PHPUnit のassertInstanceOf()で使用。@phpstan-ignore-lineを考慮。
修正
Stable
1.63.18152
マイナー機能
phpunit.xml構成で除外されているが、テストビューで選択/フィルタされたグループを含むテストが実行されます。したがって、すべてのテストを実行する際にデフォルトで実行されないように、大規模/遅いテストを<groups><exclude><group>...XML 構成を使用して除外することができます。これらの除外されたテストがフィルタボックスを使用して選択またはフィルタされる場合、除外は上書きされます。#2426- 現在、
/vendor/**フォルダ(composerのような特別なサブフォルダを含む)の問題は、vendorフォルダ内のファイルがエディタで開かれない限り、全くリストされません。 is_numericの型の絞り込み。#2436php-amqpスタブを追加しました。- 設定
files.exclude、php.files.exclude、search.exclude、php.problems.excludeは、グループ、範囲、否定、および特殊文字を含むグロブパターンをサポートします。[,]で囲まれた括弧。#945 - 頻繁に要求されるPHPエディタ設定にアクセスするためのコマンド
PHP Tools: Quick Settings ...を追加しました。 - 複数言語のPHPマニュアルを更新しました。
- 未使用のプライベートクラス関数を薄く表示します。#800
- クイックリファクタリングで
array_mergeを配列スプレッドに置き換えます。 - PHP >= 8.4 の
newの周りの不要な()をクリーンアップするためのクイックリファクタリング。 - 無名関数からの新しい呼び出し可能な構文を作成するクイックリファクタリング。
compact()関数内の変数名を補完。- 属性やさまざまな初期化における定数式 (
PHP2446) の診断。見かけた箇所: #2458, #949 - 複雑な階層を持つ
enum定義のオーバーライドチェックを改善。#2460 - 型付きプロパティにおける結合型と交差型の未知の型チェック。#2461
修正
- パラメータや括弧を含む関数を補完する際の
)の自動閉じの上書きを修正しました。#947 - 属性内のクイックフィックスを修正しました。
- オブジェクト演算子
->を含む矢印関数へのコードアクション変換を修正。 - ファイル名が正しいクラス名識別子でない場合、PSR-4 のクラス名修正を提案しません。
- 定数式内での矢印
fnを提案しません。#949 __constructやその他のマジックメソッドに対して未使用の関数宣言は報告されません。#950@phpstan-assertがコードフロー内で適用されるべき以上に多くの式に影響する問題を修正しました。#2459
破壊的変更
- 設定
"php.completion.intelliPHP.preSelect"はデフォルトでfalseです。この機能は素晴らしいですが、コード補完を 50 - 250 ms 遅くする可能性があります。
Stable
1.62.18097
グループ化された自動インポート
新しく、自動インポートは既存の use グループを尊重し、インポートされた修飾名がグループに追加されます。
新しい設定では、適切であれば新しい use グループを作成することができます。
"php.completion.autoimport": "auto-import-grouped"

非最適化の特殊コンパイラ関数の診断
#2438: コンパイラ最適化関数が現在のスコープでインポートされていない場合、コンパイラはそれをより効率的なOPコードに変換することができません。このような関数呼び出しをマークする新しい診断 PHP6616 が追加されました。

デフォルトでは、このような問題はあまり目立たないようにマークされ、VSCodeの問題ウィンドウに表示されません。以下の設定により、より目立つように下線が引かれ、ファイル保存時 やVSCodeの「自動修正...」コマンドをトリガーすることで自動修正されることも可能です。
.editorconfig
[*.php]
php_diagnostic_php6616=autofix
詳細はブログ記事 blog.devsense.comをご覧ください。
小さな機能
@phpstan-assertや@psalm-assertアノテーションがvendorディレクトリ全体にわたって尊重されます。- CI3 サポートが改善され、ロードされたライブラリから
CI_Controllerに動的プロパティが追加されます。 - 配列パラメータヒントが構造化された関数呼び出し内で配列を定義する際の配列キーの補完 #942。
- 改善された_不要な括弧_ヒントは
andと=演算子の優先順位を尊重し、||、&&、代入、if、その他の二項演算子に対するより多くのヒントを追加 #2444。
修正
Stable
1.62.18042
新機能
- テストパネルでグループ名によってテストをフィルタリングできるように、PHPUnit グループをサポート。
- タイプチェック時のfalseブランチでの型推定の改善。
class-string型を活用した型推定の改善。- 名前付きパラメータのインレイヒント用のマウスツールチップ。
- 連続した代入の整列が異なるタイプの代入(例えば=、+=、??=、など)の書式設定をサポートするようになりました #2432。
CodeIgniter 3
軽量で人気のあるCodeIgniter 3フレームワークには、多くのPHPエディタが正しく処理できない癖と規約があります。Visual Studio Code用PHP Toolsには、CodeIgniter 3のための組み込みサポートが含まれるようになりました。このサポートは今後のアップデートでさらに強化されます。

このバージョンで確認できること:
- モデル名の補完。
- ビュー名の補完。
- コントローラ内で読み込まれたクラスの補完。
特別な貢献をしてくださった #677 に感謝します。
詳しくは docs.devsense.com をご覧ください。
修正
Stable
1.62.17969
テストコードカバレッジ
テストのコードカバレッジのサポートを導入しました。今すぐお試しください。「テスト」パネルに移動し、「Run Tests with Coverage」ボタンをクリックします。コードカバレッジは「テスト」パネル、「エクスプローラー」パネル、そしてコード内にも表示されます。



この機能はPHPUnit/Para/Pestの機能に依存しており、適切なコマンドライン引数を使用してテストを実行し、VSCode内で便利にカバレッジ情報を表示します。
phpunit.xml構成に<source>要素が含まれていることを確認してください。トラブルシューティングには、「OUTPUT」ウィンドウ / PHP (Test Explorer) を監視してください。
その他の機能
- マウストツールチップ内の
@seeが参照されているシンボルへのクリック可能なリンクを含んでいます(可能な場合)。 - ソースコード内の
@seeには意味的に色付けされたシンボルがあります。 - PHP 8.5の言語レベル、パイプ演算子(
|>)、および基本的なチェック。 enum宣言の検証 (#926)。- 暗黙的にnullableなパラメータのチェック(PHP >= 8.4で非推奨)。
- 複数のテストスイートを持つすべてのテストを実行する際、現在は1つのプロセスのみが作成されます。
Stable
1.61.17926
改善点
"search.exclude"の動作が Find all references、Code Lenses、Find Implementations、Symbols in Workspace で統一されました。- PHP 8.4未満で、新しいメンバー呼び出しに括弧がない場合の診断。
- Pest 関数が新しい
$thisを考慮します。@param closure($this)または@param-closure-thisで注釈が付けられた任意のパラメーターに関連しています (#918)。 - 到達不能な match arm の診断 (#919)。
- 関数パラメータのスニペット補完の動作が変更され、ランゲージサーバープロトコルに準拠し、VSCodeによる不必要な警告を回避します (#909)。
PHPUnit、Pest、データセット
Test Explorer に新機能を導入します:新しい paratest のサポート、Pest の実験的サポート、データセットを Test Explorer UI でのサポート。

修正点
Stable
1.60.17873
修正
- パラメータ補完スニペット(設定
php.completion.parameters=="parameters")にデフォルトのパラメータ値が正しく含まれるようになりました。 - インラインCSSとスクリプトタグ内での自動補完を修正しました #914
Stable
1.60.17845
改善点
- 無効なPHP構成やデバッグを壊す可能性のある構成のチェック。すべての警告は
OUTPUT/PHPログに一覧表示されます。 trait内の型推論が改善され、static::、self::、parent::の後のメンバーがほぼ解決します。エディターは指定されたtraitのすべての使用を追跡し、また@extendsおよび@mixin注釈も確認します。
デバッグ
一部のブレークポイントが正しくないにもかかわらず検証済みとマークされる問題を修正しました。
修正
@closure-thisまたは@param callable(TYPE $this)を伴うラムダ関数内の$thisが、ツールチップで正しい型で注釈されます。- 「抽象をオーバーライド」コードアクションが正しい型の名前空間を生成します。
@method static staticタグを正しく解決します。- 複雑な型名の周りの不要な括弧をツールチップから削除しました。
trait内のselfおよびstaticを正しく解決します。
Stable
1.60.17803
&& コードアクションの簡素化
呼び出しチェーン -> と論理演算子 && を用いた長い条件は、今では ?-> を用いた単一の呼び出しチェーンに簡素化できます。
改善点
ユーザーのフィードバックに基づいて、さまざまな型推論の改善を行いました。
新たに、マジックメソッド __call() を通じて呼び出されるメソッドは、PHP6615 診断で注釈されます。これはツールチップとエディタ内に表示されます。この新しい診断は、意図しない間違ったメソッド呼び出しを防ぐのに役立ちます。

修正
- 現在のファイル内のシンボルのナビゲーションを修正しました。
- PHAR ファイル内のシンボルへのナビゲーションを修正しました。
- 単純な
"/"グロブパターンを持つ"php.problems.exclude"設定を修正しました。 /vendor/内の関数で誤った型を引き起こすarray型情報を修正しました。- プロパティフックで使用されるクラスの未使用インポートが誤って検出される問題を修正しました。
- あいまいな
$class_or_object引数を持つmethod_exists()の解析を修正しました。 - あいまいに推論された型の場合のメソッドチェックを改善しました。
Stable
Stable
1.59.17685
修正
__get()マジックメソッドがある場合に未定義プロパティについての誤った警告が出る回帰を修正しました。
Stable
1.59.17674
Laravel IDEの改善
- Livewireの計算プロパティがコード補完とナビゲーションで利用可能。
- IntelliSenseが様々なLaravelパッケージ(例:Filament)から補完を表示 (ビューファイル、翻訳キー、ルート、設定キー)。
- Laravelのリレーションメソッドはジェネリクスを使用して
HasOne<T,G>の戻り型を持つことができ、リレーションプロパティはT型になります。 - 対応するコンポーネントクラスが見つかった場合、Bladeファイルで
$thisを正しい型で補完します。 casts()メソッドや$castsプロパティで見つかったEloquent属性を補完します。- Bladeファイルでの
@errorディレクティブを修正。
フォーマット
診断の改善
コード診断が全体的に改善され、誤った警告を避けるようになりました。これにより、以前チェックされていた未知のクラス名のレポート、虚偽の未実装抽象メソッド、一部の数値操作における無効な型推論などが修正されました。
さらに、エディタは未実装の抽象プロパティをチェックするようになりました(#870)。
#2322、#2272、#2286(および関連するもの)の修正。
小さな改善
Stable
1.59.17515
'use' ステートメントのソート
新しく、'use' ステートメントの順序を alphabetic または by_length に設定できるようになりました。これは settings.json や、対応する ij_php_import_sorting ディレクティブが尊重される .editorconfig で設定できます。
use のソートについては、ドキュメントページを参照してください。コードアクションで、ファイル保存時に自動的に、または自動修正として use をソートできます。
Laravel IDE の改善
.php.言語ファイルが処理され、trans(),__(), または blade の@langのようなメソッドで翻訳キーの補完とナビゲーションが可能になります。- IntelliSense で多くのモデル属性が型指定されます。
修正
Stable
1.59.17478
メソッド抽出、定数抽出
コードの選択範囲を関数として抽出する、または定数として抽出する新しいコードアクション。
Composer IntelliSenseの強化
composer.phar は通常ワークスペースフォルダの外にあるため、その定義はエディタに知られていません。これを解決するために、composer IntelliSenseデータベース(スタブ)を含めました。
特に何もせずに、エディタは /vendor/composer/ ファイル内で使用されるComposerのクラスを認識し、それらが未知として報告されず、また調査することができます。
ユーザーがたとえば Composer プラグインを開発している場合、以下の2つのオプションがあります:
- メモリを不必要に消費しますが、
composer.pharをワークスペースに追加してIntelliSenseを得ること。 - または、設定
"php.stubs": ["composer", "*"]を使用するか、コマンド> Workspace Stubsを使用してcomposerスタブをワークスペースに追加することが推奨されます。
IntelliSenseの強化
new self、new static、またはnew parentを通じてコンストラクタへのナビゲーション (#857)。- ナビゲーションは曖昧さがある場合、現在のファイル内のシンボルを優先します。
-stringで終わる予約されたPHPDocタイプの処理。.phpstorm.meta.phpアノテーションの未ドキュメント機能の取り扱いを改善。- 複雑なトレイトメソッドの使用を検査。
- グローバルコードやBladeテンプレートで
$thisの使用が適切にアノテートされている場合、報告されません。 callableパラメータとして使用される callable-string への参照 (#2295)。- すべての組み込みPHP定義のURLをレビューし修正。
Laravel & Eloquent
- リレーションシップメソッドからの動的プロパティは、型を指定するためのオプションのジェネリック型注釈から型が推論され、IntelliSenseにシームレスに追加されます。
/** @return HasOne<T> ジェネリック型アノテーションを使用して動的プロパティ `$relationship` の型を指定します。 */ function relationship(): HasOne { ... } Model::find(int)やContainer::make()のようなLaravel/Eloquentのマジックメソッドの暗黙的な型を改善。
フォーマット
- 読みやすさを向上させるために、
foreachステートメントが自動的に単一行に折りたたまれることを防止。 - JavaScriptフォーマッタで
javascript.format.semicolonsを有効にすると、PHPフォーマッタが変更を適用できなくなる問題を修正 #850。 - タブとスペースの組み合わせを含むブロックコメントのフォーマットを修正。
- インターセクションタイプのフォーマットを修正 #2309。
新しい設定
php.files.exclude: PHP言語サーバーによるファイルとフォルダーのインデックスを除外するためのglobパターン。ただし、VSCodeのエクスプローラービューからは除外されません。php.navigation.referencesScope: リファレンスに移動する際の選択肢が厳格(厳密に型付けされたオブジェクトタイプを必要とする)か、可能な任意のターゲット位置に解決するかを選択できます。phpTools.parallelismLimit: ディスクからファイルを読み取り、解析し、インデックス化するために使用するバックグラウンドスレッドの数を制限することができます(ユーザーマシン設定)。
互換性のない変更
HTMLの自動タグ更新が常に有効でした。これからは、code.visualstudio.com に記載されているように、VSCodeの設定 "editor.linkedEditing" を尊重します。
修正
- パフォーマンスの改善。
- 可視性が変更されたトレイトメンバーの修正 (#854)。
- Bladeパーサーの修正。
Stable
1.58.17223
メソッドオーバーライド
選択されたメソッドオーバーライドを実装するコードアクションが追加されました。クラスヘッダをクリックし、クイックフィックスメニュー(電球)を開いて、Override Methods を選択します。開いたクイックピックパネルで、オーバーライド可能なメソッドのいくつかまたはすべてにチェックを入れ、確認します。

マイナーな機能
- 統合されたPHPマニュアルとIntelliSenseを(未公開の)PHP 8.4定義で更新しました (#841, #823)。
- クラス階層の検証、メンバーコード補完、およびコードナビゲーションのために
@(psalm|phpstan)-require-(extends|implements)を尊重し、提案します (#837)。 @param-closure-thisを尊重します (#825)。- ラムダや任意の間接関数呼び出しから
&参照を渡す際の診断を改善しました (#831)。 - アウトラインはプロパティとクラス定数の可視性を表示します。
- 混在するJS/PHPコードのフォーマット修正。#2259
Request::user()やAuth::user()のより専門的な戻り型により、->後のコード補完が向上しました。
修正
- Bladeフォーマッタのインデントが深すぎるのを修正。
- ドメインに結合したUnixシステムでのクラッシュを修正。
- コメントの前にクラス本体があるときの不要な改行を修正。
- PHPプロパティ後のインラインコメントがフォーマット中に別の行に移動される問題を修正 #2245
Stable
1.57.17158
新機能
参照の検索 と ワークスペースシンボル 機能に "search.exclude" 設定が適用されるようになりました(thread #780)。
小さな改善
- 統合された PHP マニュアルと IntelliSense を更新しました。
instanceof型推論の改善(#810)。Closure::bind()内で匿名関数newScopeを尊重し、誤警告の修正とコード補完の改善。
修正
- 名前付き引数として渡された匿名関数のチェックを修正しました(#821)。
"files.exclude"パターンが VSCode と同じように扱われます。これまで存在していた動作の違いがなくなりました。"files.exclude"と"search.exclude"パターンの両方が大文字小文字を区別します。
Stable
1.57.17031
新機能
新たに、テキスト選択のコードアクションとクイック修正がグループ化されました。その結果、同じアクションを選択内のすべての出現箇所に対して一度に適用できます。

コードの一部を選択し、すべての出現箇所にクイックリファクタリングを適用します。これは、Auto-Fix 機能に加えてコードのクリーンアップを簡素化するためのもう一つの強化です。
改良点
- PHP >= 8 の
explode()の解析が、boolを除外してstring[]型を正しく推論します (#2129)。 - 型解析が不完全である可能性があり、その結果補完が不完全になる可能性があることを報告します。これは内部的な技術的制限によるもので、今後改善を目指します。
_ide_helper.phpが生成された場合の曖昧・冗長な定義があるときに、より多くの Laravel マジック。- 関数内で未使用の
global変数を報告します。
修正
Stable
1.57.16971
小さい機能
- 新しく文書化されたPHP 8.4宣言のためにPHPマニュアル/IntelliSenseを更新しました。
app(),App::make()などのLaravelサービスIDの補完。- Eloquentの
find(int)がより具体的なIntelliSenseを得ます。 .pharファイルエントリへのナビゲーション。- いくつかの特異ケースにおける診断と補完が改善されました。
- 基本宣言からの
@paramを尊重します (#804)。 - プロファイリングはDocker/Remoteで
pathMappingsを使用して実行する場合に機能するようになりました。プロファイリングデータは/.vscode/profilingワークスペースフォルダに一時的に保存されます (#800)。 - HEREDOC/NOWDOC文字列の色 (#754)。一部のテーマではこれをサポートしていないことに注意してください。
- PHPファイルのHTML部分にクリッカブルなリンクが提供されるようになりました。
修正
- Blade中括弧の自動補完を修正しました。
- 特定のシナリオで発生したBladeのフォーマット問題を修正しました。
Stable
1.56.16884
小さな機能
- PHPDoc構造型名でのラインコメントをサポート。
template-type<,,>PHPStan PHPDoc型関数をサポート。- 配列の展開型推論を改善。
- 古い
Collectionのためのforeach制御変数の型推論を改善。 if文の上にある@varアノテーションを尊重。array_find()の返り値の型推論を改善。
フォーマット
Stable
1.56.16853
Laravel
- Eloquentの「マジック」およびLaravel固有の関数のコード補完。
- 特別な
ide.jsonファイルを通じた拡張可能なコード補完。 config(..),config()->string(..),Config::get(..)などでの設定キーの補完。- 環境変数の補完。
- 特別なLaravel関数でのビュー属性の補完。
- 特定の関数での名前付きルートの補完。
- 特定の関数でのルートパラメータ名の補完。
- 特定の関数での言語翻訳ファイルからのIDの補完。
Eloquent
- 様々なEloquentクエリビルダーメソッドでのモデル列の補完。列は次から解決されます(最初に定義されたもの):
- モデルクラスのPHPDoc
@property。 - モデルのファクトリークラスの
definition()関数。 - モデルのテーブルを使用して(解決可能であれば)、
database/migrations/内のマイグレーションとSchema定義で参照。
- モデルクラスのPHPDoc
- モデル動的フィールドの補完。
- マジック
whereCOLUMN()関数の補完。
Laravel Blade
Blade::component()を使用して定義されたコンポーネントエイリアスの補完。Blade::include()を使用して定義されたビューエイリアスの補完。ide.jsonからのコンポーネントの補完。ide.json,Blade::directive(),Blade::if()からのディレクティブと条件ディレクティブの補完。- Livewire:
wire:model値でのコンポーネント属性の補完/ナビゲーション。 - Livewire:
wire:***値でのコンポーネントアクションの補完/ナビゲーション。 - セクション名の補完。
x-dynamic-componentを補完に追加。- BladeのフォーマットとBladeの折りたたみがカスタム
ifディレクティブを尊重。 {{}}または{{{}}}内部にスペースを自動挿入。{!を入力すると{!! !!}が自動挿入。{{-を入力すると{{-- --}}が自動挿入。- ビューとクラスファイルを切り替えるための
phptools.blade.switchViewClassコマンド。 「キーボードショートカットを開く」をクリック -> 「phptools.blade.switchViewClass」を検索 -> ショートカットを割り当て。
HTML
- HTML属性のために自動挿入された引用符の直後に補完リストが即座に表示されるように。
フォーマット
- リターン文の前の空行数を定義する
php.format.rules.blankLinesBeforeReturnStatementを追加。 - プロパティの周りの空行数を定義する
php.format.rules.blankLinesAroundPropertyを追加。 - クラス定数の周りの空行数を定義する
php.format.rules.blankLinesAroundClassConstantを追加。 - enumケースの周りの空行数を定義する
php.format.rules.blankLinesAroundEnumCaseを追加。 - PHP PERコーディングスタイルに従って空行制限を強制するため、PERコーディングスタイルを拡張(
php.format.codestyleをperに設定)。 - JavaScriptでマルチラインテンプレート文字列を使用する際のPHPファイルでの不要なインデントの問題を解決。#2215
デバッグ
- デバッガーでの
.envファイルのサポートを強化。 envfileオプションは非推奨になりました。環境変数の設定にはlaunch.jsonのenvFileを使用してください。
修正
- コード編集時のトリプルドットとインレイヒントの浮遊修正(#776)。
.blade.phpファイルで埋め込まれたPHPコードとeditor.codeActionsOnSaveを使用したソートと使用の削除が修正されました(#483#issuecomment-2621398221)。- ワークスペースシンボルが
vendorおよび"files.exclude"設定で指定されたフォルダーからファイルをリストしない。 - composerパッケージ内の
.pharファイルは無視されず、.pharファイルからの定義がIntelliSenseに適切に含まれる。
Stable
1.55.16740
修正
- 複数行のメソッドパラメータ属性のインデントを修正しました #767
- 値を生成する関数(ジェネレーター)に対して、インレイの戻り値型ヒントとして
Generatorが正しく表示されます。 - 拡張機能が起動するたびに試用ライセンスを再アクティブ化しようとするバグを修正しました。
- ルータースクリプトが指定されている場合のプロファイラーの使用を修正しました。
- より多くのリクエストが行われる場合のプロファイラーの使用を修正しました - すべてのプロファイラー出力が開かれます。詳細はプロファイラーのドキュメントを参照してください。
小さな機能
- コードフロー解析がジェネレーターの完全な
Generator<TKey,TValue,TSend,TReturn>型を推論し、foreachによるジェネレーターの中での型推論、Generator::send()の型チェック、およびGenerator::getReturn()を改善します。 Route::のような関数内でLaravelのルートパラメータをカラー表示します。- プロファイリングの起動構成が追加されました(
launch.jsonがない場合にユーザーがデバッグ開始(F5)を押したとき)。
Stable
1.55.16685
Laravelサポートの強化
- Laravelのビューと名前空間ビューの補完とナビゲーション。
route()関数内でのLaravelルート名の補完とナビゲーション。- Bladeファイルのコンポーネント (
<x-...) の補完とナビゲーション。 <livewire:の後のLivewireコンポーネントの補完とナビゲーション。@livewire()およびLivewire::mount()でのLivewireビューの補完とナビゲーション。- ビュークラスのプロパティ、Livewireの
mount()、@props()ディレクティブからのコンポーネント属性の補完とナビゲーション。 @includeWhen、@includeUnless、@eachBladeディレクティブでのビューの補完。- 特定のLaravel関数(
asset、storage、...)内のパスの補完。 Blade言語でPHP機能(IntelliSense、インレイヒント、コードレンズ、ナビゲーション、...)が有効。
フォーマット
#2195 でのリクエストに応じて、新しいフォーマット設定をいくつか導入しました:
php.format.rules.blankLinesBetweenUseTypes: 異なる種類のuse文(例:クラス、関数、定数)間の空行数を指定します。同じ種類の文間の空行には影響しません。php.format.rules.blankLinesAfterOpenTag: 開始タグの後に挿入する空行の数を指定しますが、終了タグが同じ行にある場合は除きます。
詳細については、フォーマットのカスタマイズ を参照してください。
修正: Laravelプロジェクトのデフォルト起動設定
- デフォルトの起動設定が修正され、Laravelルーターのスクリプトを正しく使用できるようになりました。
.vscode/launch.jsonファイルがない場合は、.phpファイルを開いてF5を押すだけです。デフォルトの起動アクションが始まり、開発用Webサーバーのデバッグが開始されます(Xdebugがインストールされていると仮定します)。- さらに、初期の
launch.json設定には、Laravelプロジェクト用の正しい起動設定が含まれています。
この修正は、Webルートがサブフォルダーにある場合、例:
/public、/wwwroot、または/webrootにindex.phpがあるときに、クイック組み込み開発サーバーを使用する際に影響します。今では、組み込み開発サーバーはWebルートディレクトリと同じ作業ディレクトリで開始されます。例:${workspaceFolder}/public。.vscode/launch.jsonファイルがなく、F5を押してデバッグを開始する場合に試してみてください。
小さな機能
- 構造化されたオブジェクト型がツールチップおよびインレイタイプヒントに表示されます。
- 型推論が改善され、
class-string<T>アノテーションをより有効に活用します。
修正
- 抽象クラスからのテストの実行 #753。
- Docコメント内の浮動小数点数と整数リテラル #752。
- 不要な括弧のヒントが無効 #750。
- 括弧内の式のマウスホバーと補完 #743。
- 条件式後の補完。
laravel\framework>=11.30のデフォルトエイリアスが自動で解決されています。- 基底クラスからメソッドの戻り型を解決。
- 特定のフォーマットルール設定下で、Bladeファイルの
@phpディレクティブ内部の最初の行が、ファイルがフォーマットされるたびに右方向にさらにインデントされる問題を解決(#548)。 - フォーマット中にBladeファイルの制御フローディレクティブの後に不要なスペースが現れる問題を修正。
Stable
1.54.16574
コード操作
- クラスメンバー修飾子の順序(PSR-12に従う)および可視性修飾子の欠落に対するコード操作を追加しました。
改良点
- 構造化配列がツールチップやヒントにおいて簡略化されました (#703)。
->演算子の後、代入式の後、かっこなしのnewの後での補完とマウスホバーが改善されました。
修正
- 新しい
...(set)キーワードの後での補完/ホバー/定義への移動。 static::を通して参照されるクラスメンバーへの参照カウント。- コンストラクタプロパティでの新しい
...(set)修飾子。 - 別のファイルでグローバル変数をリネームする際にプレビューを表示します。
- PSR オートロードクラス名をケースセンシティブではチェックしません(VSCode API および FileSystem API に問題があります #635)。
- ラムダ関数内の関数名の後の不要なスペースを修正しました #2196
- 非対称可視性を持つプロパティでのナビゲーション #741。
互換性のない変更
- 拡張機能は、もはや古い PHPUnit 6 バイナリを同梱しません。PHPUnit テストを実行する際には、ユーザーは "phpunit/phpunit" コンポーザーパッケージをインストールするか、
"phpunit.phpunit"設定値を指定する必要があります。
Stable
1.54.16480
PHP 8.4 構文
エディターは新しいPHP 8.4非対称の可視性構文をサポートします(#728)。もしご使用のPHPバージョンがまだサポートしていない場合は、構文がエラーとして下線が引かれます。
プロファイリングテストと起動プロファイル
テストエクスプローラーは、PHPUnitテストを実行、デバッグ、そして新しくプロファイルできるようになりました(PHP Profiler拡張がインストールされている場合)。詳細についてはプロファイリングテストを参照してください。
さらに、テストを実行するためにカスタムlaunch.json「php」プロファイルを使用できます。
コードアクションにIDが追加されました
より多くのコードアクションが文書化されました(コードアクションリストを参照してください)。これにより、それらを非表示にすることや自動修正としてマークすることができます。オートフィックスは、ファイル保存時または「Autofix」コマンドの使用時に利用可能な場合、有用なコードアクションを暗黙的に適用できる便利な機能です。
改善点
- 構文的に壊れたファイルでの変数名のより良い提案。
- 参照渡しで非変数を割り当てる際のより特定された警告メッセージ。
- PHPマニュアルのイタリア語が追加されました。コマンド
> PHP Manual Languageまたは設定"phpTools.language": "it"を使用します。未翻訳のテキストは英語で表示されます。 - PHPUnitテストの実行が高速化されました(#725)。可能な場合は、特定のファイルパスがPHPUnitに渡され、全てをスキャンする必要はありません。
"php.executablePath"設定はワークスペーススコープ設定で変更できます。"php.executablePath"と"php.executables"は変数を含むことができます。例えば"${workspaceFolder}/bin/php"です。- ORM:
EntityManager::getRepository(class-string<T>)をクラスTに対応する#[ORM\Entity(repositoryClass)]属性を使用して呼び出す際のリポジトリクラスを推測します ((#2174)[https://community.devsense.com/d/2174])。 - WordPressとPERコードスタイルに必要なコード修正を追加しました。
修正
Stable
1.53.16379
コードアクション設定
コードアクションの重大度 は今変更可能です。これにより、特定のリファクタリングやクイック修正提案を非表示にしたり、警告またはエラーとしてマークしたりできます。
コードアクションを非表示にするには、次のいずれかを使用します:
- 対応するクイック修正「表示しない」
- または、VSCode設定の
"php.problems.exclude"にコードアクションを追加 - または、あなたの
.editorconfigファイルにコードアクションを追加
その重大度を変更するには、コードアクションをあなたの .editorconfig ファイルに追加します。以下のサンプルは、すべての冗長な閉じタグ ?> をエラーとしてマークし、削除を促します:
詳細については、以下を参照してください:
[*.php]
php_remove_redundant_closing_tag = error
コードアクションの自動修正: コードアクションは自動修正として実行できるようになりました。詳細は 自動修正 を参照してください。
診断
- 右側にトレイトを使った
instanceofの無効な使用を検出する新しい診断。
修正
Stable
1.53.16338
フォーマット
新しいPERコードスタイルオプションの導入を発表できることを嬉しく思います。これは、PHP-FIG PERコーディングスタイル標準に準拠しています。このコーディングスタイルは、PHP開発者が一貫性のある高品質なコードを維持し、最新の業界標準に従うことを支援します。PERを使用することで、プロジェクトのコードは標準化された形式に従うようになり、読みやすさ、保守性、および他の開発者とのコラボレーションが向上します。

このスタイルを適用するには、設定で "php.format.codestyle" を "per" に設定するだけで、フォーマットの調整がプロジェクトに自動的に適用されます。この新しいオプションは、コードフォーマットを効率化し、PHPコードベース全体でPERガイドラインと整合性を確保するための素晴らしい方法です。楽しいコーディングを!
コードアクション
Sort Uses Code Actionは、コードアクションとして、オートインポート中、およびeditor.codeActionsOnSave設定と連携して適用できる強力なツールです。この機能により、開発者はuseステートメントを一貫した順序で自動的に整理でき、コードをよりクリーンで読みやすくします。
この機能の動作をさらにカスタマイズするために、ケースセンシティブを制御できます。設定 "php.sortUses.caseSensitive" では、ソートが大小文字を区別するかどうかを指定できます。このオプションをtrueに設定するとケースセンシティブソートが行われ、falseに設定するとケースインセンシティブソートが行われます。デフォルトでは、ソートはケースセンシティブではないため、大小文字を区別せずにすべてのuseステートメントが整理されます。
詳細については、コミュニティフォーラムの関連ディスカッション #2127 をご覧ください。
診断
- 無効なクラス名(予約済みクラス名)の使用に関する診断を追加しました。
修正
- CopilotチャットウィンドウがIntelliSenseおよびコード診断を妨げることはありません。Copilotチャットによって提案された変更は閉じた後に無視されます。
- クラスのメソッド間とこのクラスで使用されるトレイト間の参照の検索を修正しました。
- プロジェクトフォルダー外でシンボリックリンクされたComposerパッケージのインデックスを修正しました。
- クラスが 'parent' もしくはその他の予約語として命名された場合の言語サーバークラッシュを修正しました。
Stable
1.52.16273
.editorconfig におけるフォーマット設定
新たに、コードフォーマットルールは標準の .editorconfig ファイルを使用して完全に調整可能になりました。詳細は"customize formatting"を参照してください。
改善点
- ツールチップテキストは、PHPDoc の要約をそのままのフォーマットで保持します (#2145)[https://community.devsense.com/d/2145]。
- 型推論の改善。
- 特定の診断をグローバルに無視するクイックアクションを追加。
修正
functionインポートコードアクションの修正。- タイプのフォーマット修正。
- 診断:
FFI\CDataは配列として使用できます。
Stable
1.52.16226
機能
- 複数の
.phpファイルを一括でフォーマットできる新しいPHP > Format Multiple Filesコマンド。最初にグロブパターンを入力します。すべてのフォーマット変更は最初に収集され、プレビューウィンドウに表示されます。確認後にファイルが変更されます。 - 完全修飾関数名をエイリアスに変更する新しいコードアクション (#693)。
- 新しい設定
php.format.exclude。これにより、PHPフォーマッターを使用してフォーマットされないファイルのグロブパターンを1つまたは複数指定できます。これにはformatOnType、ドキュメントのフォーマット、formatOnSave、および選択した部分のフォーマットが含まれます。また、新しいFormat Multiple Filesコマンドを使用する際、除外されたファイルは最終フォーマットレビュー中に暗黙にチェックが外されます。
改善点
- デフォルトの言語レベルが8.3に変更されました。
- 名付けられたパラメータを持つインレイヒントは、言語レベルがPHP 8.0以上に設定されている場合にのみダブルクリックで挿入できます (#686)。
.vscode-serverはデフォルトでインデックスから除外されます (#2132)。@property-writeと@property-readを尊重します。- ツールチップ内の構造化配列構文(配列型はツールチップ内で簡略化されません)。
callable()と...は正しく解析され、可変長引数はツールチップに表示され、インレイヒントにより考慮されます。@template-contravariantPHPDocキーワード (#695)。use function構文またはトレイトエイリアスとしての関数名の補完時に括弧は挿入されません。- PHPDocのジェネリック型指定で
covariantとcontravariant修飾子を解析 (#699)。 - 継承クラスからの
@paramが尊重されます #702。 - 無名関数の
$thisは内包するClosure::bind()呼び出しから推論されます #701。
修正
@phpstan-import-fromで使用時に未使用の使用として誤って報告される問題の修正。- 代入の上にある
/** @var */アノテーションが、下で型の不一致を起こさないようにしました。 privateタイプのプロパティは非プライベートコンテキストでコード補完に表示されません。- Composerからの
InstalledVersion.phpがインデックスされています。 - 診断メッセージ内のタイプミスを修正しました。
- マジック
__getメソッドを持つ場合のプライベートプロパティに関する誤った警告。 identifier( new )->の後のコード補完 (#678)。default関数名の後の補完を修正 (#692)。- PHP < 8.1 での
ArrayAccessメソッドオーバーライドに対する誤ったチェックの修正 (#689)。 - 関数の戻り値の型ヒントとキーワードの後の補完を修正 (#670)。
Stable
1.51.16099
改善点
- 参照渡し引数のための特別な配列関数のチェック。
composer.jsonで"php-64bit"バージョン要件を認識。 #665PHPDocにおけるClosure()と単独の...。 #661
デバッグ
- 初期エントリファイルが一致した場合にスキップするグロブパターンを指定できる
skipEntryPaths設定のサポートを追加。
修正
::演算子を介した静的オブジェクトメンバーへのナビゲーションの修正(ツールチップ、定義への移動、コード補完)。#666 #2126- ワークスペースから除外された場合の
vendorのインデックス付けの修正 #2100。 FILTER_NULL_ON_FAILURE定数の不要な小文字変換の修正 #2085。- デフォルトでスタブに
sodiumを含む。 - 構造化された
objectphpdoc 型ヒントを尊重するobject型ヒント。 - 複数の
::式チェーンの後でコード補完が機能する。 - 推論された型におけるテンプレート型引数のバインディングの修正 #2106。
- composer がまだ実行中の場合に composer パッケージのキャッシュの修正。
php.format.rules.alignConstantsに関するフォーマットの問題を修正し、ネームスペースが宣言されている場合にクラスコンテキスト外で定数を正しく整列させない問題を修正。#2114vendorフォルダに多数の composer パッケージがある場合の初期インデックス作成の高速化。- "auto-import" が
useを正しいネームスペーススコープに追加。 @importディレクティブとfromエイリアシングが多すぎる場合に発生する可能性のある言語サーバークラッシュの修正。
Stable
1.51.15986
改善点
- 無益なツールチップが表示されないようにしました (#611)。
- 間接的な型を通じて静的クラスメンバーにアクセスする際に
class-string<T>注釈を尊重します。 - プロパティのアクセス可視性のチェックを行います。
- PHP ドキュメントブロック内で定数値を均一な色で着色します。
- 型推論の改善、必要に応じてベースからの
@globalタグを継承します。 - リファクタリング推奨
switch->matchは PHP>=8 のみ (#2098)。 - 動的メンバーアクセスを解決し、より良い結果を得るためのリファクタリングと参照の検索 (#2093)。
- 標準のインレー ヒントをデフォルトで有効にしました。
修正
- ファイルの先頭から始まったコード折りたたみが不足しているのを修正しました。
- ダブルクォートで囲まれた文字列内の変数補完を修正しました。
php.stubsの更新が反映されない問題を修正しました。- ワークスペース内の
.pharファイルの更新が IntelliSense に含まれない問題を修正しました。 - 左側の値が複数行の式である場合の
php.format.rules.alignConsecutiveAssignmentsの整列を修正しました。 #642 - 型付きの定数宣言のマウスホバーを修正しました。
- インターフェースに
@extendsを使用する際の誤った警告を修正しました。 - 未知のクラス警告に対するクイックフィックス(再有効化)を修正しました。
@internal関数をパッケージキャッシュに保持します(つまり、それらを IntelliSense に保持します)。
Stable
1.50.15906
改善点
- クラス定数と列挙ケースのチェックが正しく大文字と小文字を区別するようになりました。
- ジェネリック型引数の構文が
*トークンを受け入れます。 "autoload-dev"ルールのための PSR-4 チェックも行います。- 統合されたPHPマニュアルを更新し、
SimpleXmlElement::saveXmlを追加。 - 参照渡しパラメータのチェックを強化。
修正
- Windowsで文書名を変更した後の問題を修正し、ファイル名の大文字小文字が異なる場合にコードアクションが破損していた問題を修正。
- PSR-4のクラス名とファイルパスのチェックおよび対応するリネームコードアクションを修正。
is_numeric()の後の無効な型推論を修正。A ? A : Bの誤ったリファクタリング提案を修正。代わりに?:が正しい。- 暗黙の nullable,
never, およびトレイトによるオーバーライドチェックを修正。 - 名前空間名で
Functionキーワードの使用を修正。 - 単一のジェネリック型パラメータのみを持つ
Collection<T>の使用を修正。
Stable
1.50.15872
エディター
- 構造化配列/オブジェクトタイプ内の名前のハイライト (#597)。
- PHPDocタグ名と予約型名を
keyword色でハイライト(選択されたテーマに依存) (#612)。 - トレイト
useの上のPHPDocブロックをハイライト。
PHP 8.4 サポート(プレビュー)
このアップデートは、新しいPHP 8.4機能のサポートを追加します。含まれるもの:
- プロパティフックと
__PROPERTY__マジック定数。 - 括弧なしの
new。 - プロパティおよびプロパティフックのフォーマット。
フォーマッタ空行設定
PHPコードフォーマッタは、さまざまな種類のコードセクション間の空行を調整するための新しい設定グループ「Blank Lines」を備えています。宣言、クラス本体、コメント、関数などの上のスペースを調整できます。php.format.rules.blankLines***オプションの完全なリストについては、設定を参照してください。
機能
"php.docblock.colorMode"ユーザースコープ設定は、PHPDocブロックの色分けを簡素化することができます (#612)。- PSR-4オートロード規則、クラス名、ファイル名のチェック。PSR-4ファイル名不一致のクイックフィックス (#609)。
改善点
- インポートされていないグローバルタイプの補完ソートを調整(#598)。
- マジック定数(
__METHOD__、__PROPERTY__など)が正しい文脈で使用されているかどうかを確認。 - 診断の改善、
try/finallyの制御フローと到達可能性の解析の修正。 - 型の推論を改善。
修正
Stable
1.49.15728
改善点
- 宣言の上に
/**を入力するとDocコメントが生成されます。この機能はformatOnTypeが有効でなくても動作します。 - 二重引用符で囲まれた文字列内で
$を入力したときにサジェストをトリガーします。 - Docコメント内で型ヒントを入力したときにサジェストをトリガーします。
@phpstan-assert、@phpstan-assert-if-true、@phpstan-assert-if-falseの初期サポート。- ネストされたディレクトリ内のPhpUnitテストを検出し、
prefix設定を尊重します。 - 保存時の
"source.organizeImports"コードアクションは、不要な使用を削除しません。これは望ましくない可能性があります。(#1883) "editor.codeActionsOnSave"設定用に明確なコードアクションを追加しました:"source.source.sortImports": 使用のみをソートします。"source.organizeImports"と同じです。"source.source.sortAndRemoveImports": 不要な使用を削除し、残りをソートします。
- 非シールド配列形状タイプを認識します (#587)
- Bladeは短いオープンタグを尊重します。
IntelliSense
- Laravelの
Macroable::macro()は、ネストされたラムダ関数内での$this推論が向上します。 - パラメータ名が欠けている場合の
@param補完。
ヒント (...)
利用可能なクイックリファクタリングを持つコードは、3つの小さなドットで注釈が付けられます。詳細を示すマウスのツールチップがあり、対応するコードアクションを実行するクイックフィックスがあります。

デバッガ
- Unicode配列キーとプロパティ名をサポートしました。
- デバッグコンソールは変数名の補完を提供します。
修正
Align Propertiesフォーマットルールを修正し、連続したフォーマットアクション後でも正しい配置を確保します。- テンプレート引数を持つ
@extends parent<>注釈でのクラッシュ修正 (#585)。
Stable
1.48.15635
改善
- 初期のインデックス作成を改善し、インデックス作成後にテストケースの発見を延期。
- 最適化、メモリ使用の改善。
ReflectionClass::getMethods()の型推論が向上。- OUTPUTパネルへのログ記録を統一。
- 抽象関数の実装に普遍的な
@inheritDocドキュメントコメントを追加。 Sort usesコードアクションが重複を削除。
フォーマット改善
プロパティの整列
フォーマッタは、クラス定義内のプロパティを整列させ、コードの表現力と可読性を向上させるための Align Properties 機能を提供します。この機能は php.format.rules.alignProperties オプションを使用してアクティブにします。
class X
{
var $a = 1;
public $bb = 2;
protected $ccc = 3;
}
修正
Stable
1.47.15512
Blade .blade.php サポート
@useディレクティブをサポートしており、型エイリアスを含みます。コード補完と IntelliSense がインポートされたクラスとエイリアスされたクラスを正しく認識します。@classディレクティブや他の HTML タグ内のハイライト。- 開始/終了の blade タグが PHP キーワードや HTML の開始/終了トークンとしてハイライト。
- Blade ファイル内での PHP コードの補完、PHP 関数のシグネチャヘルプ、PHP コード折りたたみを改善。
- 安定性の修正。

診断
/** @ignore $variablename */を尊重し、$variablenameが未使用の場合でも問題が報告されません。- より複雑な条件付きの戻り値の型をサポート、すなわち
@return ($name is class-string<T> ? T : bool)(#538)。 - 誤った到達不能コード警告の修正 (#556)。
method_existsとfunction_existsのチェックを処理して、未知の関数についての誤警告を避けます。
新機能
- ターゲット
callable()PHPDoc 型注釈からのラムダ関数パラメータの型推論。 - 推論されたラムダパラメータ型のインレイヒントを追加。
"php.inlayHints.types.lambdaParameter"設定を有効にします。

リネームリファクタリング
リネームリファクタリングが部分的に再実装され、新しいリネームシナリオが実装され、様々なケースが修正されました。リファクタリングはクラスや定数、関数インポート、テンプレート型名、文字列や配列内の名前の出現を正しく処理します。
新機能
- エイリアスされた型名の正しいリネーム。元の型と異なる型エイリアスをリネームする際、エイリアスのみがリネームされます。
- エイリアスされた関数と定数のリネームが正しく動作するようになりました。
- ジェネリック型のリネームが修正および最適化されました。
- インポートされたテンプレート型のリネームが実装されました。これは
@phpstan-import-from、@psalm-typeなどの様々な PHPDoc タグに対応しています。 - テンプレート型名および型名への参照の検索が修正され、新しいシナリオに正しく対応しました。
リネームリファクタリングに関する問題があればお知らせください。改善に取り組みたいと考えています。
既知の未実装機能: 名前空間のリネーム、名前付き引数のリネーム。進行中です。
改善
- コロンブロック(
if:,switch:,while:,for:,foreach:)の折りたたみ。 by-ref関数のマウスホバーを改善。- Blade フォーマッタが
.blade.phpファイル内の PHPDoc ブロックを正しくインデント。 - 関数ヘッダーパラメータ内での選択範囲を追加。
- 対応する PHPDoc ブロックに選択範囲を拡張。
- ゲッター/セッターの生成が
"php.completion.namingConvention"設定に一致するように識別子全体を調整。 (#2011)
修正
Stable
1.46.15409
機能
namespaceの後にインライン提案。- ブレードブロックの折りたたみ。
- ブレードタグの補完。
.blade.phpファイルのフォーマット(PHPファイルとして開く必要があります)。
ブレードフォーマット
ブレード (.blade.phpファイル) のコードフォーマットが実装されました。フォーマッタは、HTML/CSS/JS と PHPのプリティプリントとPHPのインデントを組み合わせ、ブレードブロックのインデントも行います。
今のところ、さらに設定はありません。皆様のご意見に基づいて、より多くの設定や修正を追加していきます!

注意: 他のブレード拡張機能を使用している場合、この機能は利用できないかもしれません。開いている
.blade.phpファイルの言語がPHPに設定されていることを確認してください(VSCodeウィンドウの右下)。
HTML タグと属性の自動閉鎖
PHPコード内で、HTMLタグ要素は、開いたタグの>を入力すると自動的に閉じます。同様に、閉じタグの/を入力すると、対応する閉じタグがシームレスに挿入されます。
さらに、HTML属性の引用符も、=を入力すると自動的に含まれるようになりました。
HTML タグの自動リネーム
HTMLタグの自動リネームはデフォルトで有効になっています。この機能を無効にするには、VSCodeのsettings.jsonに次の設定を使用してください:
"[php]": {
"editor.linkedEditing": false
}

改善点
- パフォーマンスとメモリ使用量の改善。
- 選択範囲の縮小/拡大が、PHPファイルおよびブレードファイルのHTML部分で機能します (
Shift+Alt+LeftとShift+Alt+Right)。
修正
staticリターンタイプのオーバーライドチェックの修正。- コードを修正するときの
.blade.phpファイルのインレイヒントの修正。
Stable
Stable
1.45.15260
新機能
- 補完リストに関数シグネチャを表示(実験的) - 設定
"php.completion.showParameters"を有効にする。 - 該当する場合、
defineをconstに変更する新しいコードアクション。 stringPHPDoc 型ヒントの無効な大文字小文字を修正するコードアクション。- おそらく間違った
foreach変数の診断。 - 完成リストで非推奨のシンボルを非表示または取り消し線で表示するかどうかを制御する設定
"php.completion.showDeprecated"。デフォルトでは取り消し線で表示されます。
PHPUnit テストエクスプローラー
テストエクスプローラーは #[Test] 属性を尊重し、対応するテストをリストに表示します。
改善点
- オーバーライド診断は型ヒントの可能な
class_aliasを考慮します。 - トレイトが互換性のないメソッドを導入する場合、オーバーライド診断はトレイトの使用を下線で示します。
- 型推論の改善。
- 一部の無効な PHPDoc 型注釈の取り扱い。
- さらなる迅速なコード提案。
- 最適化。
修正
Stable
1.45.15192
HTMLタグの自動リネーム
phpファイル内でHTMLタグペアを単一の編集でリネームできるようになりました。この機能をオンにするには、settings.jsonでeditor.linkedEditingを有効にしてください:
"[php]": {
"editor.linkedEditing": true,
}
改善
- 関数のホバー情報にジェネリック型引数がある場合、表示されるようになりました (#1915)。
- ホバーツールチップでトレイトメンバーのテンプレート型引数の表示を改善。
修正
empty、isset、exitの括弧の前に不要なスペースが入る問題を修正しました (#522)。- 複雑な配列初期化子を含むコードでのフリーズの可能性を修正。
Closure型パラメーターのオーバーライド診断を修正。namespace private;構文を許可するためにパーサーを修正。- 継承されたテンプレート型引数の型推論を修正 (#503#comment)。
Stable
1.45.15145
新しい設定
- php.hover.parametersFullName: ツールチップで完全な型名(現在の名前空間に短縮されたもの)を表示します。
- phpTools.suppressPremiumFeatures: コードアクションのようなプレミアム機能に関するいくつかの通知を無効にします。
オーバーライド診断
正しいメソッドオーバーライドのための診断を追加しました(#234)。#[Override] 属性の正しい使用法を含むチェックを含みます。
さらに、エディタは一般的なオーバーライドエラーに対するクイックフィックスを提供します。
改良点
.phpstorm.meta.phpのexpectedArguments()がクラス名スコーピング、ミックスイン、およびトレイトの使用を尊重します。(#1929)- 型推論の改善。
修正
- プレミアムがアクティブでない場合でも、
organizeImportsとfixAllの自動化が VSCode を遅くしません。(#504) - コード補完での欠落していた
mixedを修正しました。 - 欠落していたいくつかの Eloquent モデル関数を修正しました。
@をエントリ名に持つ構造化配列のドックコメント型を修正しました。(#508)- フォーマット時の
return後の不要なスペースを修正しました。#509 - テストエクスプローラーの初回読み込みを修正しました(#1934)。
unsetステートメントのラッピングを修正しました。これはcallParametersWrapオプションで制御されます。#518
Stable
1.45.15061
改良
- 自動かっこの補完がIntelliPHPの提案と組み合わせて動作します。
- 型推論と型チェックが改善されました。
- ジェネリック型引数と_id_helperを活用する際の
foreach型推論が改善されました。 - インラインタグのためのBlade文法ハイライト。
.blade.phpファイル内のPHPコードを適切に整形するコードフォーマッター。- エロクエントモデルクラスのためのIntelliSense。
リファクタリング
- 文字列補間への連結のリファクタリング。
フォーマッティング
php.format.declCompactEmptyBodyオプションが導入され、空の関数ボディを自動的に{}に変換し、前のシンボルと単一のスペースで区切られて同じ行に維持されるようになりました。
function foo() {}
さらに、適切な構文が常にラップされることを保証するラッピングオプションalwaysのサポートを追加しました。
修正
.blade.phpファイルでのセマンティックハイライトの修正。"php.stubs"を追加/削除した後、またはcomposer.jsonのrequireでext-**を追加/削除した後の問題の更新。- インターフェースまたは抽象の実装のためのコードアクションが正しい型ヒントを追加。
- 稀な言語サーバークラッシュ(メモリ不足、CPU 100%、クラッシュ)の修正。
- キーワードでもある関数名の後の不要なスペースを修正#1481
- 全く動作しなかったフォーマッティングの修正。
Stable
1.44.14997
改善点
- PHP、HTML/CSS/JSコードが混在する場合のフォーマット選択が改善され、
editor.formatOnTypeおよびeditor.formatOnPasteの動作が向上しました。 @psalm-yieldドックコメントタグのサポート、およびyieldの結果型をその形で推論します。#[Override]属性の診断を追加しました。trait-string、interface-string、enum-string、callable-stringのphpdoc型に対応しました。phpcs:ignoreコメントのサポート。
ツールチップの改善
- ツールチップでより短い型名を表示(
"php.hover.parameters.fullname"設定で変更可能)。 - シグネチャヘルプツールチップで適切な場合には
neverの戻り型を表示。 class-string型ヒントの修正。
修正点
- HTMLコメント内のBladeタグを正しく強調表示。
- 関数オーバーライドの補完を修正。
- 行コメントの後に続く複数行にわたる式のインデントが正しくない問題を修正。
- 配列として変数にアクセスする際の誤った
6404診断を回避。 - ファイルが変更された際に他のファイル内の関連診断も更新。
- 安定性の向上。
Stable
1.44.14950
改良点
default:またはcase ... :を入力した後の自動フォーマット機能。- 関数シグネチャのホバー時に、より詳細な
array型仕様を改善。 array_rand()とis_array()の型推論を改善。- PHPコードでの
{{の使用を修正。 - より多くのLaravel Bladeタグをサポート(
@extends,@can)、Bladeタグの構文エラーを修正。
Stable
1.44.14925
Laravel Blade エディター
このアップデートでは、Laravel Blade タグ内のPHP構文の実験的なカラー化が可能になります:
{{/}}、{!!/!!}、{{{/}}}、@php/@endphp内のコードをカラー化- Bladeタグ式、つまり
@if ( ... )内のコードをカラー化 - Bladeタグをカラー化
- Bladeコメント、つまり
{{-- ... --}}をカラー化
加えて、入れ子になったすべてのPHPコードは、IntelliSense、診断、コードアクション、コード修正、ツールチップなどの標準機能を得ます。

改善点
- コードアクションやコード修正を適用した後にコードを自動的にフォーマット。
- 組み込みの
array_*関数のための配列型解析の改善。 @psalm-で始まるより多くのドックブロックタグを理解、例として@psalm-property、@psalm-readonly、@psalm-traceなど。- ドックブロックタグ
@traceまたは@psalm-traceのためのインレイヒントと変数ハイライト。 .blade.phpファイルの全体的なパーサーの改善 -@phpと<?phpブロックを尊重し、ほとんどのドキュメント化されたBladeタグとブロックを尊重。neverを返す関数、終了する関数、および常に例外を投げる関数を尊重。- コードアクションが利用可能なときにトリプルドットを表示。
コードアクション
- 可能な場合、
ifをswitchにクイックリファクタリング。 - 不要な括弧を削除し、薄暗くする。
フォーマット
スイッチ項目に直接存在する場合の中括弧のインデント方法のデフォルトの動作を変更しました。#1897
修正
Stable
1.43.14858
不要な括弧
安全に削除できる括弧がコード内で薄く表示されるようになり、対応するコード修正「不要な括弧を削除」が利用可能になりました。
改良点
- ラムダの戻り値から推測されるジェネリック引数の型推論。
- フォーマッタがコメント内の
@formatter:offおよび@formatter:onディレクティブに対応。
フォーマッティング
ユーザーのフィードバック#395に基づき、Joomla開発者向けの新しいコードスタイルを追加しました!有効にするには、"php.format.codeStyle"設定を"joomla"に設定してください。
修正
"drupal"用のコードスタイル("php.format.codeStyle"設定)を修正 - スペースを挿入します。::演算子後の補完機能を修正。- 新しい配列
[を入力する際に補完機能がトリガーされるのを回避。 case識別子の後の不要なスペースの修正#469- 2つの空の文字列を含む配列がある場合の不正な出現ハイライトを修正。
- メモリとパフォーマンスの改善。
- CPUの常時使用と、終わらない_devsense.php.ls_プロセスを引き起こすバグを修正。
Stable
1.43.14756
$_SERVER と $GLOBALS のコード補完
コード補完は、$_SERVER と $GLOBALS スーパグローバル変数の既知の配列キーを提供します。型推論もそれらを考慮します。

配列キーのコード補完
可能な限り配列キーが一覧表示され、補完されます。これは構造化された配列ドックコメント(例:array{name:string,id:int})や配列初期化子(例:new ['name' => "John, 'id' => 1])と非常に相性が良いです。
コードアクションとリファクタリング
- コンストラクタプロパティ用のゲッター/セッターを生成するコードアクション。
isset(A) ? A : Bを簡略化するコードアクション。
改良点
- 複数行の
array<>構文を持つドックブロックがサポートされました。 =キャラクターを使用した@psalm-type定義を持つドックブロックがサポートされました。- (変数だけでなく)式全体の型を定義する
@varを持つドックブロックが処理されます。 - キー名が多い場合の型解析が改善されました。
instanceof演算子の複雑な左辺値(L-value)を処理します。- キー名が多い場合の型解析が改善されました。
??演算子の型解析が改善されました。- WordPress ソースコードにおけるグローバル変数の処理を改善しました。
- 配列キーのコード補完、配列エントリの型推論、
[の後の補完トリガー。 - 参照(
&)による変数と式の型に対するインレイヒントがダブルクリックで挿入されないようになりました。 composer.jsonに特定のphp.versionが設定されていない場合に、PHP 言語レベルがこれに従います。
フォーマット
- ユーザーリクエストに基づいてメソッドの連鎖呼び出しの改行を実装しました (#1868)。現在、この設定には
alwaysオプションのみが許可されています。 - メソッドチェーンラッピングが適用されるときにセミコロンを新しい行に配置する機能が追加されました。
デバッグ
同時デバッグセッションの最大数を制御するために maxConnections 起動設定を追加しました。#353
修正
Stable
1.42.14626
改善点
array_unshift()の型解析を改善。privateプロパティのリファクタリング。property_exists()関数内で指定されたプロパティ名のリファクタリング。- エロクエントローカルスコープの検出と補完を改善。
- WordPressの構造化配列/オブジェクトのドキュメントコメント構文が、コード解析とコード補完で認識され、尊重されます。
- インライン説明付きで
@varで注釈された変数のツールチップ。 _ide_helper.phpで誤って生成された型名の診断回避策。${}の非推奨の文字列挿入に関する診断と対応するコードアクション。- 冗長な閉じタグ
?>に関する診断と対応するコードアクション。
修正点
- PHP8+のFQN名前空間構文でキーワードを処理するPHPパーサーを更新。
- 一部のFTP拡張を使用して
ftp://リモートからワークスペースを開く際の起動修正。 - 到達不能コードの偽の診断を修正。
property_exists()でチェックされていた場合に未知のプロパティを報告しない。- 曖昧な関数呼び出し(2箇所で定義された関数または2つのファイルで開かれた関数)での_インレイヒント_の修正。
- クラッシュ修正。
Stable
1.42.14434
PHPスタブユーザーインターフェース
クイックコマンド > Workspace Stubs を追加しました。これにより、スタブ(PHPブックや他のスタブ、"WordPress" を含む)をクイックに選択して、IntelliSenseおよびコード分析で利用可能にすることができます。

"source.fixAll" アクション
名前の単純化など安全なクイックフィックスを、ファイル保存時に自動的に修正できます。ファイル保存時に安全なクイックフィックスを適用するためには、次の設定を使用します:
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true
}
デバッグ
ブレークポイント解決
Xdebugからの情報を通じてブレークポイントの位置を検証することで、ブレークポイント解決を改善しました。特に次の点で改善されています:
- バインドされたブレークポイントは赤でハイライト表示されます。
- バインドされていないブレークポイントは灰色で視覚的に識別されます。
- ブレークポイントに近い有効な場所にバインドできなかった場合、そのブレークポイントは自動的に有効な場所に調整されます。
xdebug_notifyサポート:
xdebug_notify() のサポートを追加し、デバッグコンソールへの情報やオブジェクトの送信を可能にしました。この機能は、コンソールに直接関連データを伝達することで、デバッグ体験を向上させます。
エラーと警告
PHPの警告とエラーをデバッグコンソールに出力するようにしました。このアプローチにより、開発者がデバッグセッション中に問題を監視および対処できる集中的な場所を提供します。
改良点
- 欠落している関数
useの クイック修正。 newrelicに対するphp.stubsを追加。composer.jsonからの PHPスタブ をIntelliSenseとコード分析に暗黙的に含めます。- より複雑なPHP実行: これによりリモートの
phpを使用したり、オリジナルのコマンドを使用してphpを実行できます。設定のphp.executablePathまたはphp.executablesには、引数付きのコマンド(例:ddev exec php)を指定できます。注意: ダブルクォーテーションが必要になることがあります。 - PHPUnitパスは絶対パスにできる: 設定
phpunit.phpunitをダブルクォーツで囲むことで、カスタムphpunitのパスをそのまま維持できます。つまり"phpunit.phpunit": "\"phpunit\""です。 - PHPUnitコマンドをカスタマイズ可能: 新しい設定
phpunit.commandを使用することで、PHPUnitを実行するためのコマンドを完全にカスタマイズできます。コマンドをカスタマイズする変数を使用:${cwd}: ワークスペースのルートパス、ローカル。コマンドはこのディレクトリで実行されます。${phpunit}": phpunitバイナリへのパス。これは自動的に解決されるか、phpunit.phpunit設定でカスタマイズできます。${phpunitxml}: ワークスペースのルートに対するphpunit.xmlのパス。${phpunitargs}: 構築されたPHPUnit引数。(--teamcityと--filterを正常に機能させる必要があります)${phpargs}: PHPが正しく実行およびデバッグされるようにするために使用するオプション引数。
フォーマッティング
フィードバックに応えて(source)、コードフォーマットの柔軟性を向上させる2つの追加オプションを実装しました:
関数を単一行に保つ
`php.format.rules.keepFunctionsOnOneLine`` オプションを導入し、関数またはメソッドが単一行の場合、それを折り返さないようにフォーマッタに指示することができます。これにより、開発者は簡潔で一貫したコーディングスタイルを維持できます。
クラスを単一行に保つ
新しい `php.format.rules.keepClassesOnOneLine`` オプションを使用すると、クラスが単一行の場合にフォーマッタがそれを折り返さないように指示できます。この機能は、コードベースにおけるスリムでコンパクトな構造の保持をサポートします。
修正
- グローバル名前空間内で
useの並び替えと削除のためのコードアクションを修正。 static/$thisを返すメソッドの解決を改善 (#1820)。- インレイヒントの位置を修正、コードの近くを編集する際に。
- テストエクスプローラーでのソースへの移動を修正。
- リネームリファクタリングは、変更が危険な場合に プレビュー を表示。
- リネームリファクタリングは、コンストラクタプロパティを適切に扱います (#450)。
- さまざまなコード分析の改善。
- さまざまな
_ide_helper.phpのバグに対する回避策。 - 条件付きブレークポイントの修正。以前のバージョンでは特定のケースでこの機能が壊れていました。
static関数を用いたインターフェイスを実装するためのコードアクションを修正 (#446)。- 複数の関数を含む入れ子の連想配列における誤ったフォーマットを修正 (#432)。
- 古いXdebugバージョンでデバッガ開始時に発生する
invalid or missing options警告の修正 #1816
プレミアム
- 注: コードアクション と コードフィックス は PREMIUM で利用可能です。この更新前にライセンスなしで意図せず動作していた可能性があります。
Stable
1.41.14263
フォーマットの改善
コメント
このアップデートでは、コメントの処理方法が改善されました。現在では、式の後に続くコメントは元の位置に保持され、ユーザーが希望するようにインデントできます。
$x = [
1 => 'one' // first comment
42 => 'fortytwo' // second comment
]
match アーム本体の整列
フォーマッターには、「Align Match Arm Bodies」機能が追加され、match 式内の本体(結果)が整列されることで、コードの明確さと構造が向上しました。この機能は php.format.rules.alignMatchArmBodies オプションで有効にできます。
match ($day) {
'Monday' => 'Work',
'Tuesday' => 'Tacos',
'Wednesday' => 'Waffles'
};
ドキュメントコメントと型注釈
-
構造化された
objectタイプ: 動的オブジェクトは、object{property:type,}の構文を使用してドキュメントコメント内で注釈を付けることができます。 -
グローバル
@typeエイリアス: ドキュメントコメント@type、@phpstan-type、@phpstan-import-type、@psalm-type、@psalm-import-typeを使用して、ファイル全体のスコープで型エイリアスを定義できます。以前はクラスや関数の上にのみ機能していましたが、今ではグローバルファイルスコープのどこでもドキュメントコメント/** */内に有効です。 -
コードアクション – ドキュメントコメント内の修飾名に対応 (#428)
-
@method 構文で修飾子がサポートされました、すなわち
@method public static foo()。これは珍しい構文ですが、現在は理解できます。
redis スタブの追加
"redis" を "php.stubs" VSCode 設定に追加できます。これにより、redis 拡張機能を使用するための型チェックと IntelliSense が追加されます。
リネームプレビュー内の診断
プレビュー付きでシンボルをリネームする際に(F2、Shift+Enter)、新たにプレビューウィンドウが分析され、エラーと警告が下線付きで表示されます。
デバッグ
ランダム Xdebug ポート
現在、launch.json で "port": 0 を指定すると、ランダムな利用可能なポートとして扱われます。php は対応する xdebug.port = ${port} ディレクティブを使用して自動的に開始されます。デフォルトでは、何も指定しない場合にランダムにポートが選ばれます。ほとんどの「実行とデバッグ」コマンドは単に動作します。
ビルトイン Web サーバーの起動、デバッグの開始、ブラウザの起動を行うサンプルの起動構成:
{
"name": "Launch Built-in server",
"type": "php",
"request": "launch",
"runtimeArgs": ["-S", "localhost:8888", "-t", "public"],
"port": 0,
"serverReadyAction": {
"action": "openExternally"
}
}
この起動構成のデフォルト値であるため、"port": 0, を完全に省略することもできます。
注意: Xdebug を待機する 場合のデフォルトポートは、依然として
[9003, 9000]です。詳細は: https://docs.devsense.com/en/vscode/debug/launch-json#built-in-php-server
クイック起動コマンド(launch.jsonを持たずに F5 を押す)でもランダムな利用可能な Xdebug ポートを使用します。特に何もする必要はありません。
式評価の強化
現在、デバッグコンソールやウォッチウィンドウを含む様々なコンテキストで、式をより深いレベルまで展開できます。改善された評価結果でより優れたデバッグをお楽しみください。
現在の PHP ファイルの実行/デバッグ
現在、エディターの右上コーナーにあるクイック実行/デバッグボタンを使用して、現在開いている PHP ファイルを実行またはデバッグできます。
修正
- 式の後に続くコメントが元の行に保持されるようにする折り返し動作の修正。 #1760
php.inlayHints.parameters.suppressNameMatchingValue設定の修正。- "Implement abstracts" コードアクションの適用後のコードインデント修正。
enum内でのuseコードアクションの修正。#425- ウェブ拡張のブラウザ実行の修正 (vscode.dev)。
- 名前空間にある
@seeタグ内でのナビゲーションと補完の修正。 - LS のクラッシュ(スタックオーバーフロー)の修正。#427
- プロパティ昇格で
readonlyと型間の不要なスペースの削除修正 #433 - 曖昧なシンボル宣言の場合のマウスホバーツールチップの改善。
Stable
1.40.14103
IntelliPHPの導入 🚀
PHP拡張機能がIntelliPHPをバンドルするようになったことをお知らせできることを嬉しく思います。

IntelliPHP: あなたのローカルPHP AI - 入力中に即座に全行の提案を提供します。TABキーで提案を完了し、生産性を向上させましょう!続きを読む ...
小機能
- 二重クリックでインレイヒントを挿入するかどうかを設定する
"php.inlayHints.insertOnDoubleClick"設定 (#1717)。 array_multisort()は最初の引数を厳密には参照渡しとして扱わない (#1729)。- ファイルパスの移動とコード補完の改善 (#1735)。
@seeおよび@exceptionのツールチップ。list{}ドックコメントの形状。
フォーマット
新しいPHP 8.3の構文がフォーマッタでサポートされています。
最終行
デフォルトでは、フォーマッタは最終行のトリムを行いません。最終行はそのまま保持されます。ただし、files.insertFinalNewlineが有効になっており、最終行が欠けている場合、フォーマッタが自動的に追加します。
修正
Stable
1.39.13943
クラス名インラインの提案
新たに、新しいクラスを入力すると、クラス名がファイル名に基づいて提案されます。この提案は、Visual Studio Codeのインライン補完UIを利用して行われるため、邪魔にならず、TABキーで受け入れることができます。

IntelliPHPと組み合わせると、インラインコードの提案がさらに詳細で強力になります!
ファイルパスの補完
この更新以降、エディタがファイルを補完し、ナビゲートできるようになりました #402。

修正
- 古い形式の
composer/installed.jsonファイルがサポートされました。 - PHPとHTMLを混ぜたときに発生したいくつかのフォーマットの問題を修正しました。
Stable
1.38.13918
ゲッター/セッター命名規則の設定
生成されるゲッターとセッターの命名規則の設定が追加されました。

PHP 8.3 構文
PHP 8.3 構文機能をサポートに追加:
- 型付きクラス定数
- 読み取り専用の匿名クラス
- 動的クラス定数のフェッチ
フォーマット
ユーザーフィードバックに応えて(#384, #1691, #684)、PHPコード内のカンマの自動配置を正確に制御できる追加フォーマットオプションを導入しました。
これらの新しいオプションには以下が含まれます:
php.format.rules.addCommaAfterLastArrayElement: 配列の最後の要素の後にカンマを追加します。php.format.rules.addCommaAfterLastCallParameter: 関数呼び出しの最後のパラメータの後にカンマを追加します。php.format.rules.addCommaAfterLastDeclParameter: 関数またはメソッドシグネチャの最後に宣言されたパラメータの後にカンマを追加します。
上記に加えて、以下のフォーマットオプションも導入しました:
php.format.rules.booleanConstantCasing:trueおよびfalse定数の大文字小文字の定義。php.format.rules.nullConstantCasing:null定数の大文字小文字の定義。
修正
- デバッガが
%文字を含むファイルパスを処理するようになりました #380 - /vendor/ のキャッシュ修正
- composer 更新後に問題が更新されます
- メモリ使用の最適化
- キーワードでない場合はキーワードツールチップを表示しないようにしました
- ピークウィンドウで重複したアイテムを表示しないようにしました
- Drupalコードスタイルを使用する場合、フォーマッタはすべての True/False/Null 定数を大文字に変更します。#870
- フォーマットやインレイヒントの設定に対する複数の変更が同時に行われた場合、最初の変更のみが考慮され、それ以降の変更は無視されました。
- PSR-12 コーディング標準に関連するフォーマットの問題を解決しました。複数行の引数リストの閉じ括弧と開き中括弧は、PSR-12標準に従い、一行に一つのスペースを挟んで正しく配置されるようになりました。
- コード診断や IntelliSense のさらなる修正。
- 配列初期化子の値が追加のインデントレベルでフォーマットされるようになりました。#935
- 複数行の配列初期化子に関連する他のフォーマットの問題を修正しました。
- 安定性の向上。
Stable
1.38.13779
修正
- スティッキースクロール #387
defaultケースのツールチップ #1692- 属性のツールチップ
- 型指定なしのパラメーターの型解析を修正
- 問題解析設定の修正
- /vendor/ のキャッシュ修正
- /vendor/ ファイルでの
staticの使用修正 #389 - ワークスペースに不正に作成された一時キャッシュを修正 X/1697612088196137243
Stable
1.38.13759
読み込みとメモリ使用量の最適化
このアップデートでは、composer.lockをvendorフォルダとともにキャッシュし始めます。これにより、Composerパッケージに基づくワークスペースのオープンが劇的に改善され、RAM使用量が最小限に抑えられます。
インサイダーの皆様へ、OUTPUT / PHP Language Serverパネルでその動作を確認してください。
属性のインレイヒント
クラスの上の属性には、パラメータ名を含むインレイヒントが表示されるようになりました(#383)、これが有効な場合。
scalar_objectsサポート
#378の提案に感謝します。Nikita Popovによるscalar_objects拡張をネイティブにサポートしました。
エディターはregister_primitive_type_handler()呼び出しを認識し、指定されたスカラー型の補完を可能にします。
フォーマット
ユーザーリクエストに直接応え、定数php.format.rules.alignConstantsと列挙ケースphp.format.rules.alignEnumCasesを整列するためのフォーマットオプションを追加しました。これにより、整合した整列が簡単になりました:
class X {
const a = 1;
const bb = 2;
const ccc = 3;
}
仮想ファイルでのコード解析
仮想ファイル、すなわちdiffビュー、ピーク、gitプレビューなどで完全なコード解析を有効にしました。これにより、送信しようとしている変更を簡単に解析できます!

シンボル詳細付きアウトライン
#109の提案に感謝し、ドキュメントのアウトラインにより詳細を追加しました。メソッドのアクセス、クラスのアクセス、interface、trait、enumの種類を表示します。

修正
- VS Codeまたはワークスペースを閉じる際の遅延を修正。
useステートメントのソートを修正。traitで定義されたメソッドへのgo-to-defを修正。@psalm-import-typephpdocタグのサポートを修正。- パラメータなしの
newがある際のインレイヒントを修正。 - 静的メソッドのリファクタリングの名前変更を修正。
- 最適化。
- 名前空間で予約語を使用する際に発生するフォーマットの問題を修正。
Stable
1.37.13534
補完用ネームスペースラベル
新機能として、コード補完時にクラス名の横にネームスペースが表示されます。この機能はデフォルトで有効になっており、設定で "php.completion.showNamespaceLabel" で制御できます。

補完のカラー詳細
コード補完のポップアップがフォーマットされ、カラー化されます。
インテリセンス
- シングルクォートで囲まれた文字列内のクラス名補完が追加されました。
修正
Stable
1.36.13417
デバッガとtrigger設定
新しい起動設定"trigger"を使用すると、特定のリクエストをデバッグするか無視するかを制御できます。
{
"name": "Debug built-in server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-S",
"localhost:8000",
"-t",
"./public"
],
"trigger": "THIS",
},
上記のlaunch.json設定は、組み込みのWebサーバーを起動し、すべてのXdebugディレクティブを構成し、リクエストを待ちます。GETパラメータXDEBUG_TRIGGER=THISを持つリクエストのみがデバッグされます。他のリクエストはデバッガによって無視されます。すなわち、http://localhost?XDEBUG_TRIGGER=THISへのリクエストはデバッグを開始しますが、http://localhostは開始しません。
IntelliSenseとIteratorIterator
IteratorIteratorおよびRecursiveIteratorIteratorが一般型引数TInner、@mixin TInnerを拡張し、__construct()がこのTInnerを推論するようになりました。したがって、IntelliSenseは内部イテレータの型を認識し、内部イテレータのメンバーを提供できるようになりました。(#1613)
新しいIntelliSense機能
@phpstan-typeと@phpstan-import-typeがサポートされました(#1543)。- 含まれるディレクトリでの
phpstan.neon(および.distの代替ファイル)の処理; そのグローバル型エイリアスをサポート(phpstan.neonファイルの"typeAliases"設定)。 Collection<TValue>、Iterator<TInner>の正しい取り扱い。- マジック
__get()を使用してアクセスされる未定義のプロパティが低い重大度で報告されます。 - トレイト適応とクラス継承分析の修正。トレイト
useを持つ複雑な継承を持つクラスが正しく分析され、不足しているメソッドの実装についての有用な洞察を提供します。 - 特定の
try/finallyブロックの制御フロー分析を修正しました。 - Laravel IntelliSenseを改善しました。
名前空間の自動インポート
すでに名前空間の自動インポート機能があり、コード補完を使用すると対応するuseまたは完全修飾名がシームレスに追加されます。また、新しい名前空間をインポートするためのコードアクションもあります。さらに、コマンドバー(F1)とクイックピックウィンドウを介して名前空間をインポートするコマンドImport class ...およびFqn class ...を追加しています(#450)。
安定性の修正
- ソリューション内に
.pharファイルがある場合のメモリリークが修正されました。
Stable
1.35.13327
use の整理
_Organize Imports_として知られるアクションが、ソースコード内のどこからでも呼び出せるようになりました(#349)。use文の削除と並べ替えは、単一行ではなく、コード全体のブロックに影響します。
Composer
composer.pharへのパスを設定composer.binを使って明示的に設定できます。また、composer.pharの解決が改善され、ほとんどの場合、すでにインストールされている独自のComposerが使用されます。ユーザーがComposerをインストールしていない場合は、自動的にダウンロードされシームレスに使用されます。
リファクタリング
トレイトの関数メンバーは、セマンティックハイライト、参照の検索、メソッドのオーバーライドを含むコードレンズ、および名前の変更リファクタリングで解決されます。
デバッガー & Phar
拡張機能は.pharファイルを解析して理解します。この更新以降、.pharファイル内のコードをデバッグしてステップスルーすることが可能です。Pharファイルはデコードされ、開かれ、現在のステートメントが通常の.phpファイルのようにハイライトされます。ローカル変数も調査でき、インラインデバッグの値も動作します。
安定性
このアップデートは、codeが閉じられた際にプロセスが終了しない問題を修正しました。
Stable
1.34.13295
IntelliSense & @phpstan-type と @psalm-type
これからは、ローカルタイプエイリアスの基本サポートがあります。
IntelliSense & ジェネリックを持つTraits
新たに、trait の使用は、トレイトのジェネリック引数を指定するために @use ドックコメントで注釈を付けることができます (#840)。例:
class MyClass {
/** @use MyTrait<int, string> */
use MyTrait;
}
IntelliSense & static 型
static や $this をトレイト内、保護されたプロパティ、そして一般的なクラス継承に関して使用する様々なケースのために、内部を再実装し、型の解析を改良しました。さらに、ジェネリック引数とトレイトのメンバーは、より継承された型情報でより良く解決されます (#931)。
PHPUnit テスト & 連続実行
新たに、テストを連続実行することが可能になりました。Testing パネルの watch アイコンで、すべてのテスト、テストスイート、または特定のテストケースだけを常に最新に保つことができます (#1479)。
小さな改善点
- 名前付き引数のコード補完が末尾に
:を完了します。 (#1600) - シングルクオート内のヒント付き配列キーのコード補完。 (#1600)
instanceofキーワードの後に SPACE を入力した後に補完がトリガーされる。
修正
- いくつかのメモリリークを修正しました!
match、fn、そしてinterfaceが修飾名内で構文エラーとして報告されなくなりました (PHP 8.0+)。- PHP 8.2 のスタンドアロンの
true、false、およびnullの型名 (#338)。 - いくつかの型推論ケースを修正しました。
@ignoreタグで注釈が付けられた関数が未知数として報告されるのを修正しました。ifの上の/** @var */を通じた型ヒントを修正しました。define()のチェックを修正しました (#340)。- 抽象メソッド後のフォーマット時に新しい行が削除される問題を修正しました #1525。
- アロー関数が php.format.rules.spaceWithinDeclParens を尊重し、括弧内にスペースを追加する問題を修正しました #1536。
- 関数がキーワードとして命名された場合の不要なスペースを修正しました #335。
- 前の兄弟ノードが同じ行で終了する場合、インデントを増加しないようにしました #333。
- キーが単純なリテラルでない場合の配列項目の揃えを修正しました #1602。
Stable
1.34.13120
IntelliSense
トレイト適応ブロック
trait 適応ブロックでのコード補完とツールチップが実装されました。 (#582)
その他の改善
is_a()のコンテキストでの型推論が正しく解析されるようになりました。__callStatic()マジックメソッドが存在する場合、静的に呼び出される非静的メソッドに対する警告が減少しました。- コードアクションによる新しい迅速なリファクタリング。
- 統合されたPHPマニュアルとローカライズの更新。
欠落PHPDocの追加
Add Missing PHPDoc コードアクションは、ドックコメントをスニペットとして挿入します (#157(comment))。これによりテンプレート変数が置き換えられ、プレースホルダーに入力できるようになります。
フォーマッティング
コメント // @php-format off または /* @php-format off */ と、それに対応するコメント // @php-format on または /* @php-format on */ の間のコードがフォーマットされないように、指定されたコード範囲内でフォーマットをオンまたはオフにするオプションを追加しました。
さらに、新しいオプション php.format.rules.declKeepRightParenAndOpenBraceOnOneLine を追加し、関数またはメソッド宣言ヘッダーの右括弧 ) をボディ { の開きブレースと同じ行に保持します。
その他、フォーマットのカスタマイズを可能にするオプションには以下が含まれます:
php.format.rules.openBraceOnNewLineForNamespacesは、名前空間宣言のために新しい行に開きブレース{を配置します。php.format.rules.openBraceOnNewLineForBlocksは、他のフォーマットルールによって制御されるものを除くすべての種類のコードブロックに新しい行に開きブレース{を配置します。php.format.rules.spaceBeforeParenthesesInControlStatementsは、制御文内の括弧の前にスペースを挿入します。php.format.rules.spaceBeforeParenthesesInCallsは、メソッド、関数、およびコンストラクタの呼び出し括弧の前にスペースを挿入します。php.format.rules.spaceBeforeParenthesesInDeclarationsは、メソッド、関数、およびコンストラクタ宣言括弧の前にスペースを挿入します。
インレイヒント
名前付き関数のみに戻り値の型インレイヒントを表示し、匿名関数および矢印関数には表示しないオプションを追加しました (#326)。
修正
- 型チェックおよび型推論チェック内での
class_alias()の対応。 @return $thisをstaticな戻り値型ヒントとして扱う。- 関数の上に PHPDoc を生成する際に
"php.completion.autoimport-docblock"設定を考慮 (#896)。 "mongodb"スタブが更新され、いくつかの欠落しているMongoDBクラスと関数が修正されました。使用するには設定"php.stubs": {"*", "mongodb"}を使用してください (#927)。- すべての参照を見つけるときに、必要に応じて型解析を実行し、より良い結果を提供する (#322)。
- PHPDocの
@methodタグで導入されたメソッドの名前付きパラメータの使用を修正 (#921)。 - 値が
?staticを許容するように正しく処理。 - コード診断の改善、不正な警告を回避。
- ユーザースニペットを補完する際の内部エラーを修正。
- JavaScript文字列内に複数行のPHPコードが存在する際に、フォーマッティングが正しく機能しない問題を修正 #908。
- 複数行の静的関数呼び出しで名前付き引数が使用された場合の不正なインデントを修正。
- 複数のforeachコロンブロックが使用された場合の不要な改行の詰め込みを修正。 #893-12
- 特定のケースでの名前付き引数の不正なインデントを修正 #928。
- 擬似クラス定数の不正なインデントを修正 #932。
- スクリプト/スタイルタグ内のPHPフォーマットの修正。 #1460
/*で区切られた複数行のコメントでのインデント喪失の修正 #1489。/*コメントでの空行削除のフォーマット修正 #1522。- 複数ネストされた複数行ラムダ関数での不正なインデントを修正 #1500。
Stable
1.33.12934
IntelliSense
.phpstorm.meta.php の expectedArgments() および argumentsSet() をサポートしました。

修正
Stable
1.33.12924
Test Explorer
Test Explorer は、グロブパターン **/phpunit*.xml または **/phpunit.xml.dist に一致する PHPUnit XML 設定ファイルを(vendor フォルダーの外で)探して監視します #313。これにより、カスタム名を持つ複数の設定ファイルを同じディレクトリに持つことができます。

さらに、以下の問題を修正しました:
- 設定ファイル内のすべてのテストを実行する。
- 単一のテストスイート内のすべてのテストを実行する。
- テストのデバッグ時に不要な警告が発生しないよう正しい Xdebug の指示を行う。
ParaTest
このアップデートにより、ParaTest を PHPUnit テストと同じ方法で実行できるようになりました。操作方法は次の通りです:
- コマンド
Composer: require dev packageを使用して ParaTest composer パッケージをインストールし、brianium/paratestパッケージを検索します。 - ワークスペース設定を更新します:
{ "phpunit.phpunit": "./vendor/bin/paratest" } - Testing パネルに移動し、テストを実行またはデバッグします。
保存時のuse文のソート
以下の設定は、保存時に use 文をソートおよび整理するために機能します:
{
"editor.codeActionsOnSave": { "source.organizeImports": true },
}
IntelliSense
現在、@inheritdoc 上で Ctrl+Click(または F12 を使用して移動)することで、基底のドキュメントコメントに直接遷移することが可能です。#897
さらに、シグネチャヘルプでの戻り値型ヒントはテンプレート(ジェネリック)引数を考慮しています。
Composer "composer.workingPath" 設定
フィードバック #909 に感謝し、ユーザーが composer.json および vendor フォルダーの相対パスを指定できる設定 "composer.workingPath" を追加しました。
修正
Stable
1.32.12895
IntelliSense
- ドキュメントコメントの
@paramタイプとして指定されたnullが無効として報告されます。 true擬似型は、ユニオン型内で正しく処理されます。new()と名付けられたメソッドは、マウスホバーおよびコード補完で正しく処理されます。- Laravel サービスの検出が改善されました。
expectedArguments()PHPStorm メタの初期実装。<?phpタグの後にdeclareおよびdeclare(strict_types=1);を補完。
リファクタリング
- PHPDoc の
@seeおよび@usesがリネームリファクタリング、すべての参照の検索、および発生箇所の強調表示中に認識されます。 - 設定 problems がオフの場合でも、未使用の
useチェックが機能します。 - 任意の単純なクラス名に対する ネームスペースのインポート。同じ名前を持つクラスが複数ある場合、ネームスペースのインポートやクラス名の完全修飾のコードアクションの提案があります。
インポートの整理
ドキュメントを保存する際に自動的にインポートを整理(別名 不要な使用の削除)できる VS Code の "インポートの整理" コマンドおよび最終的な "editor.codeActionsOnSave" 設定のサポートを追加しました。

修正
Stable
1.31.12821
修正
- パンくずリストを修正しました。(#302)
- 認識されないPsalmおよびPHPStanの特殊タイプ名を修正しました。(#860)
- グローバル変数のタイプチェックを修正しました。(#303)
- マウスホバーで
@mixinのプロパティを参照します。 - IntelliSense: Laravel ファサードと DocComment
@methodのメソッドが期待通りに解決されます。 - VS Codeによって生成された
rgプロセスを修正しました。(#877) - 複雑なhtml/php混在フォーマットの問題を修正しました。#852
- 複数行のチェインコールのインデントの誤りを修正しました。#862
PSR-12にプロバイダーされたマルチラインヘッダーでのメソッドまたは関数宣言の開き中括弧の位置を修正しました。#305- メソッドまたは関数に引数として渡されたラムダ関数の後に不要な改行が入るのを修正しました。#306
- インターフェイスを実装するバックタイプを持つ列挙型のフォーマットを修正しました。
- 関数呼び出しが複数行の場合、名前付き引数のインデントを修正しました。#863
- html/phpの混合で呼び出された場合に選択範囲のフォーマットが機能しないケースを修正しました。
- フォーマットはhtmlコメント内でphpコードブロックをインデントしません。#872-3
Stable
1.31.12740
インレー・ヒント
PHPコード用の新しいインレー・ヒントが利用可能です!

インレーは、パラメータ名、参照渡しの引数、推論された関数の戻り値の型に利用できます。

インレー・ヒントを有効または無効にするには、次の設定を変更してください:
"editor.inlayHints.enabled""php.inlayHints.parameters.enabled""php.inlayHints.parameters.byReference""php.inlayHints.types.return""php.inlayHints.types.variable"
詳細はドキュメントを参照してください。
ドキュメントコメントが欠落している場合のクイック修正
新しいコードアクションでは、推論された型情報と要約のプレースホルダーを含むドキュメントコメントの欠落を補います。この機能は、/**を関数/クラス/プロパティ/定数またはdefine()呼び出しの上に入力するのと同じですが、コードアクションを通じて呼び出したり、一度に複数の宣言に対してコード全体にわたって呼び出したりできます。(#226)
スマートセレクト
Visual Studio Codeのセレクションレンジ機能は、構文要素を迅速に選択することができます;PHP拡張はすべての文、宣言、コードブロックの選択範囲を提供します。
フォーマット
要望の多かったDrupalコードスタイルの導入がついに実現しました。#795 このバージョンでDrupalコードスタイルが導入されたことをお知らせします。
フォーマッタは、files.InsertFinalNewLineオプションを尊重するようになりました。#837
修正
- 定義を参照する際の範囲の強調表示を修正しました(#288)
- 一部の内部例外を修正しました。
- コードが文法的に無効な場合のマウスホバーを修正しました。
- リモートの
://やgit://ファイルがワークスペースに存在する場合、または git マージ、あるいは diff ウィンドウの後に "Search TODO" コマンドを修正しました。 - 変更されたときの
.gitおよびその他の特殊なディレクトリ内のディレクトリのインデックス作成を修正しました。 - ドキュメントコメントで指定された型は、
selfのエイリアスとして$thisキーワードを使用できます。すなわち、callable($this)(#843)。
フォーマット修正
- オブジェクトが括弧内にあった場合の複数のメソッド呼び出しのチェーンのフォーマットを修正しました。#820/8
- 混合JSとPHPのフォーマットを修正しました。#820/5
- PHPコード内にJSがある場合のフォーマットで
}が各フォーマットで移動するケースを修正しました。#820/7 - マルチラインHTML属性、コメント、CDATAの内部が各フォーマットでインデントされるケースを修正しました。#820/12
- Linuxの行末が異なるフォーマット出力を引き起こす場合のケースを修正しました。
- エイリアスがクラスと同じ場合の
useがフォーマッタを停止するケースを修正しました。 - 配列アクセスとメンバー使用が複合されたマルチライン式での二重インデントを修正しました。#842
- 参照代入時のアンパサンド後の不要なスペースを修正しました(#846)、同時にこの記法も尊重します
$a =& $b;。 - 配列項目アクセスを含むマルチライン式における不要な二重インデントを修正しました。
elseif、catch、finallyの前に行コメントがあるときの不要な新しい行を修正しました。- オブジェクトの新しいインスタンスを作成する際の
staticまたはselfと(間の不要なスペースを修正しました。 - フォーマッタがビット演算子
&周囲のスペースを削除するケースを修正しました。 - マルチラインにまたがるコンストラクタ呼び出しの際のオブジェクトのフィールドアクセスの不要な二重インデントを修正しました。
php.format.rules.alignConsecutiveAssignmentsと異なる種類の左側の式が組み合わさっている場合を修正しました。- 予約された型が型ヒントとして使用されたときのスペースの欠如を修正しました。
- マルチラインで連鎖された関数呼び出しで使用されるコメントのインデントを修正しました。
php.format.rules.keepControlStatementsInOneLineオプションが使用されるときの)後のスペースの欠如を修正しました。#852-2- マルチライン条件演算子の不要なスペースを修正しました。
- PHPキーワードと同じ名前の関数後の不要なスペースを修正しました。
staticキーワードが使用された際の静的メンバーアクセスの二重インデントを修正しました。- マルチラインコンストラクタ呼び出しでメンバーがアクセスされた際のインデントの誤りを修正しました。
defaultという名前の識別子の後の不要なスペースを修正しました。- 関数宣言のパラメータに属性がある場合のフォーマッタの停止を修正しました。
- ネームスペース内のトレイトの使用がフォーマッタを停止する可能性がある場合を修正しました。
- 公開に可視性を変更するトレイトの使用がフォーマッタを停止する場合を修正しました。
Stable
1.30.12484
修正
- コードフォーマッタの修正。
- 様々な標準関数の欠落、および不明瞭な箇所の修正。
- Homebrewの
phpがmacOSで認識されるようになりました。 - 変数が挿入されたheredocのフォーマットを修正しました #820
Stable
1.30.12450
エディター
Folding use が追加されました。これにより、use ステートメントのブロックを折りたたむことができます (ツイート)。
ゲッター/セッター
新たに、ゲッターとセッターを追加して挿入されるコードは、設定 "php.completion.getterSnippet" と "php.completion.setterSnippet" を使用してカスタマイズ可能です。この方法により、さまざまな値の処理を追加し、戻り値をカスタマイズしたり、自分用のコメントを追加したりすることができます (#813)。例:
"php.completion.setterSnippet": "{PROPERTY} = sanitize(${NAME}) ?? throw new InvalidArgumentException('Invalid ${NAME}!');\n//done\nreturn {THIS};",
フォーマッティング
-
バック列挙型がサポートされました。
-
新しい設定
php.format.rules.keepControlStatementsInOneLine。#810 -
設定
php.format.rules.SpaceBeforeColonInControlflowStatementsがphp.format.rules.SpaceBeforeColonInControlStatementsに名称変更されました。 -
型宣言における不要なスペースを修正しました #271
-
php.format.rules.alignConsecutiveAssignmentsは、直接続く場合のみ代入を揃えるようになりました。代入の間に新しい行を挿入すると、異なった方法で揃えるように強制されます。修正
-
差分ビューで開かれたドキュメントがシンボル検索とシンボルナビゲーションに二重に現れないようにしました (#549)。
-
Unixでのシンボリックリンクの再帰を修正しました (#269)。
-
空白のWhat's New画面を修正しました。
Stable
1.30.12417
ドキュメントコメント
ドキュメントコメント内でリテラルと定数をサポート(例:key-of<>やvalue-of<>内)、ドキュメントコメント内の型情報が解析され、IntelliSenseが機能するようになりました(#801)。
診断
- 重複する昇格プロパティが報告されます。
- 読み取り専用プロパティの変更を報告します。
__get/__setがあるが@propertyドキュメントコメントの宣言もある場合に未定義プロパティの使用を報告します。- 不明な属性クラスに対する診断を追加しました。
名前変更のリファクタリング
class、interface、trait、またはenumをリネームする際に、該当するファイル名のリネームも提案されます。
ホバーツールチップ
新たに、ホバーツールチップを設定するための2つの設定が追加されました。
"php.hover.fullname"は、ツールチップの上部に完全なクラスメンバー名を追加します(クラスの完全修飾名を含む)(デフォルトでは無効)(#808)。"php.hover.containingClass"では、関数ツールチップの一部としてクラス名を表示するかどうかを有効/無効にできます(デフォルトでは有効)。
修正
- ワークスペース全体の処理時間(ソースコードの解析)が最適化されました。
- 欠けていた
ZipArchive::定数を追加しました(#256)。 - ラムダ関数内で定義された定数がIntelliSenseとコード診断に表示されます(#257)。
- コンストラクタ昇格プロパティの名前変更のリファクタリングとセマンティックハイライティング。
extends/implementsキーワードの後にコンテキストに応じた補完。- ワークスペースに多くの
.gitignoreファイルが存在する場合の"Problems: Exclude Git Ignore"の修正。 - 関数宣言の上部に定義された
@globalタイプの使用を修正。 - 末尾カンマの上に
/**を置いたときにドキュメントコメントを生成する際の修正(#265)。 - ワークスペースのパスと重なる
includePathを使用するときの問題とコード解析の更新を修正。
Stable
1.29.12304
IntelliSenseの改善
@internal アノテーションの尊重
@internal ドキュメンテーションコメントタグでアノテートされたシンボルは、補完リストに表示されなくなりました。
正しい順序
コード補完の順序をコンテキストとこれまでに入力されたテキストに基づいて更新しました。インポートされた名前空間のシンボルが最初にリストされ、次にトップレベルのシンボルが続き、最後には自動インポート可能なシンボルがあります。
非推奨クラス
さらに、コード補完リストやソースコード内で使用された際に、非推奨のクラスやインターフェースが取り消し線で表示されます。以前は、これを関数のみで行っていました。

パフォーマンス
より頻繁な操作がバックグラウンドスレッドに移動され、ユーザーエクスペリエンスがスムーズで途切れないようになっています。
ショートオープンタグ <?
デフォルトでショートオープンタグ (<?) 内のPHPコードを解析できるようにしました。ソースコードの冒頭に <?xml があるケースに対応しています。
ショートオープンタグ内の解析は、設定 "php.workspace.shortOpenTag" を使用して無効にすることができます。
Composer
ローカル開発バージョンの composer.phar は、30日ごとに自動更新されます。
修正
pcntl定数がIntelliSenseに追加されました。#region/#endregionの折りたたみを修正しました。- 様々な状況での折りたたみを修正しました。
composer update後のIntelliSenseの更新を修正しました。- ツールチップに表示される不正な
integer型名を修正しました。 - グローバル変数のリネームを修正しました (#242)。
- 非英語ローカライゼーションでの警告メッセージを修正しました (#249)。
switch文での到達不能コード警告が欠落しているのを修正しました。throw newの直後の補完でExceptionクラスが欠落しているのを修正しました。- 文法エラーがある場合の自動インポートを修正しました (#671)。
- フォーマッタが
yield fromの後のスペースを除去しないようにしました (#248)。 - 先頭に
/を持つuseがフォーマッタを停止させる問題を修正しました。 ;で終了するコロンブロックがコロンブロック閉鎖トークンから空白で区切られている場合にフォーマッタを停止させる問題を修正しました。
Stable
1.28.12200
新しいコードアクション
より便利なリファクタリングがPHP拡張機能とVS Codeに追加されます。以下は、一般的なPHP 8構文をコードに導入するリファクタリングです。
条件 ?: を ?-> に置き換えることができます
以下のような条件式を簡略化します:

代入を簡素化できます
代入を簡略化します:

switch を match に変換
特定のケースでは、switch 文を新しい match 式に変換できます。
PHPStan 条件付き戻り値の型
このアップデートにより、新しいPHPStanの条件付き戻り値の型がサポートされました。この方法で指定された戻り値の型は、ソースコード内で適切に認識され、対応する色で表示され、IntelliSenseは指定された型を適切に使用します。

型チェックとIntelliSenseの改善
破壊的変更: デフォルトでは、開かれているドキュメント内でのみ診断を報告します。これは設定 "php.problems.scope" を使用して変更できます。例外は構文エラーで、これはワークスペース全体から報告されます。
加えて、さまざまな falsy 警告が修正されました。特にジェネリック型との組み合わせで修正されました。型分析が全般的に改善されました。
さらに、ほとんどのポリフィルがコード補完やシンボルナビゲーションに影響を与えなくなります。組み込みのマニュアルはジェネリック型引数とともに注釈されており、サードパーティーパッケージのポリフィルよりも優先されます(#241)。
コード補完の順序の改善
コード補完自体が改善され、ローカル シンボルが最初に一覧表示されるようになりました。この機能は現在も開発中で、可能な限り改善を続けています。
修正
- メモリリークとランゲージサーバークラッシュを修正しました。
/**を入力した後のPHPDocスニペットのテキストの破損を修正。- 欠落していたPsalmスカラー型注釈を追加しました。
@mixinメンバーの解決順序を修正しました(#777)。htmlファイルをphp言語サポートに関連付けることができます。//region///endregionフォールディング(#788)。
フォーマット
- null許容の戻り値型の
?トークン後の不要な余白を削除しました #752 - Wordpress コードスタイルの修正
- 型および関数宣言では開き中括弧
{を新しい行に配置しません。 Unset呼び出しは括弧内にスペースを挿入していませんでした。exit()またはdie()は括弧内にスペースがありません。
- 型および関数宣言では開き中括弧
php.format.rules.alignConsecutiveAssignmentsが特定のケースでフォーマッタを停止させました。- 等しくない演算子
<>を!=の代わりに使用するとフォーマッタが停止しました。 - プロパティプロモーションのコンストラクタヘッダーにおけるオプションのカンマがフォーマッタを停止させました。
- HTMLとPHPを組み合わせた特定の状況でフォーマッタが停止しました。
switch内のcaseが:の代わりに;に続く場合にフォーマッタが停止しました。
Stable
1.27.12010
ドキュメントコメント構文
Doc Blocksで一般的に使用される型構文の全範囲を認識するために取り組んできました。現在ではPHPStanおよび他の人気のあるリンティングフレームワークのほとんどをサポートしています。
このリリースでは、Doc Blocks、および関連する型解析とコード診断に向けて、より多くの互換性と機能を導入しています。
カラー化とセマンティックトークン
PHP Doc Commentsは非常に複雑になっており、PHPStanのようなフレームワークがさらに多くの構文と複雑さを追加しています。ジェネリック型、テンプレート、型エイリアス、ユニオン、インターセクション、callable構文、配列の形状など、拡張された構文のほとんどをサポートしています。今リリースでは、そのような_ドキュメントコメント_内の型が適切にカラー化されています。

型表現全体が解析され、カラー化され、認識されます。ツールチップはClosureの引数と戻り型を表示するシグネチャヘルプを示します。
注: より見やすいツールチップが進行中です!
PHPStan配列の形状、callable、list、その他
このリリース以降、エディターは配列の形状とcallableのすべての構文をサポートしています。さらに、型解析は指定されたPHPStan型を適切に処理します。
PHP Doc Commentsで指定されたPHPStanとPsalmの配列の形状は許可され、解析され、カラー化され、コード補完と型解析に使用されます。
加えて、listとnon-empty-list型も処理されます。<と>で指定されたジェネリック対応も含みます。
PHP Doc Commentsのすべてのcallable構文も現在サポートされています。
より多くのジェネリック注釈
この更新はジェネリックテンプレート型で注釈を付けられた標準型を提供します。これはLaravelやSymfonyフレームワークで特に有用で、全てのコレクション、反復可能なもの、Generator、DOMNodeList等の型推論を提供します。
これにより、すべての種類の反復可能なものに対してforeach内で推定された値が改善されます。
変数用Docコメントスニペット
変数の割り当ての上やグローバル変数の上にDoc Blockを作成する際に、作成されるスニペットを設定できるようになりました。さらに、スニペット設定には新しいプロパティ "singleline": true|false(変数の場合はデフォルトでtrue)が追加され、Doc Blockを単一行で作成するか(例: /** @var Type */)を指定できます。
設定例:
{
"php.docblock.variableSnippet": {
"singleline": false
}
}
修正点
integer、boolean、list型がDoc Blockで正しく処理されるようになりました。- 未使用の
use解析が修正され、Doc Blocksで指定された型名を扱うようになりました。 session_set_cookie_params()の診断とパラメータ補完が、可能な両方の定義で動作するようになりました。- 欠落していた
Imagick定数が追加されました。 - ジェネリック型および様々な端ケースにおける型推論を改善しました。
Stable
1.26.11866
IntelliSense & Enums
PHP 8.1のenumオブジェクトは暗黙的にUnitEnumとBackedEnumインターフェイスを実装しています。BackedEnum<TValue>インターフェイスはテンプレート型引数で注釈されており、ドキュメントコメント内でバックド型を用いてより良い型解析を行うことができます。例:
/** @param \BackedEnum<string> $e */
function foo($e) {
return $e->value // -> string
}
enum MyEnum : string {
case A;
}
foo( MyEnum::A );
ジェネリックタイプ & ドキュメントコメントの型注釈
PHPドキュメントコメント内の型注釈が再実装され、複雑な構造でも処理され、補完、リファクタリング、ハイライト、プレビューが可能になりました。入れ子になったジェネリックタイプでもハイライトが機能し、リネームリファクタリングやコード補完も可能です。
/**
* @template TElement of \BackedEnum<string>
* @return (Collection<int, TElement>|array<int, TElement>)[] 複雑なジェネリック型注釈 */
複数行の構造化配列型
このリリースでは、複数行の構造化配列型注釈への対応が追加されました。これにより、配列のキーと対応するエントリーの型を指定することができます。以下の例をご覧ください:
/**
* @return array
* {
* name: string,
* age: int,
* }
*/
コード診断の改善
コード解析と関連する診断の改善に常に取り組んでいます。今回のリリースでは、多くの誤警告が回避されます。
フォーマット
新しいLaravelコードスタイルを導入しました。php.format.codestyleをlaravelに設定するだけです。
また、フォーマッターに連続する代入を自動的に整列させることも可能になりました。php.format.rules.alignConsecutiveAssignmentsオプションを使います。 #692
$a = 1;
$bbb = 2;
$ccccc = 3;
そして、追加された他のフォーマットルールは以下の通りです:
| 設定 | 説明 |
|---|---|
php.format.rules.spaceBeforeColonInControflowStatements |
制御フローブロック内のコロンの前にスペースを挿入します。 |
php.format.rules.spaceBeforeColonInReturnType |
戻り型のコロンの前にスペースを挿入します。 |
php.format.rules.spaceWithinCallParens |
メソッド、関数、コンストラクター呼び出しの括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinDeclParens |
メソッド、関数、コンストラクター宣言の括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinArrayInitilizersParens |
配列初期化子の括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinIfParens |
if文のヘッダ括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinWhileParens |
while文のヘッダ括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinForParens |
for文のヘッダ括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinForeachParens |
foreach文のヘッダ括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinSwitchParens |
switch文のヘッダ括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinCatchParens |
catch文のヘッダ括弧内にスペースを挿入します。 |
php.format.rules.spaceWithinBrackets |
ブラケット内にスペースを挿入します。 |
php.format.rules.spaceWithinBracketsAroundExpression |
式の周りのブラケット内にスペースを挿入します。 |
php.format.rules.spaceWithinExpressionParens |
式の周りの括弧内にスペースを挿入します。 |
いくつかのフォーマットの問題も修正されています:
- 名前空間での
readonlyがフォーマッタを停止させる原因となっていた問題 - 関数宣言での
readonlyとenumが括弧の前にスペースを追加しない問題 - PHP 8.2のDisjunctive Normal Form Typesをサポート
- マルチライン式での定数の使用が二重にインデントされる問題 #748
- HTMLとPHPコードを組み合わせた際に期待通りの整ったコードにならない場合がある問題を改善しました。特にWordPressテンプレートで顕著です。
修正
組み込みPHP関数の型解析のホットフィックス。
Stable
1.26.11753
タイプ分析の改善
assert()言語構造内の式が変数の型を決定するために使用されるようになりました。(#744)- 特定の型注釈がより正確になりました。
- 矢印関数内の暗黙的クロージャ変数が適切に初期化されるようになりました。これにより、入れ子になった矢印関数内での初期化されていない変数使用に対する偽警告が修正されます。
- より多くのコアタイプがテンプレート型引数で注釈されており、
@templateや類似のものが使用される場所での型推論が向上します (#746)。 - ジェネリックのサポートが改善され、拡張された
@template構文を使用する doctrine/collections や他のテンプレートタイプを適切に処理します (#746)。
エディタの改善
readonlyおよびenumキーワードが、名前空間または関数宣言の一部として使用される場合、誤ってシンタックスエラーとして報告されません。- 言語サーバーがコード補完中に割り当てるメモリが大幅に削減されました。これにより、全体的なパフォーマンスが向上します。
フォーマット
- Wordpress コードスタイルでは、空の場合に括弧と中括弧の間にスペースを挿入しないようになりました。例えば
foo()の場合は、foo( 1, 2 )。 - 配列初期化子のキー値ペアが別の行にない場合、これらを整列させない(
php.format.rules.arrayInitializersAlignKeyValuePairsが有効な場合)。 - 複数行の式での定数の誤ったアウトデントを修正します。
Apple Silicon
Apple M1 および M2 チップ(Apple Silicon)のサポートを導入します。arm64-x64 アーキテクチャを持つこれらのCPUは、以前のリリースでは完全にサポートされておらず、これらのアーキテクチャ向けの言語サーバーを提供できることを嬉しく思います。
Stable
1.25.11652
PHP 8.2
組み込みのIntelliSenseが更新され、最新のPHP 8.2クラス、関数、定数、ドキュメントがすべての利用可能な言語で提供されるようになりました (#215)。
PHP 8.2の一環として、新しいRandom拡張子の統合マルチランゲージドキュメントを追加しました。
フォーマット
よく受けるフィードバックの一つは、フォーマットが時々遅いというものでした。これに対処し、今でははるかに良くなったはずです。ただし、速くないケースがあればお知らせください。
Wordpressコードスタイルを導入できたことを嬉しく思います。php.format.codestyleをwordpressに設定するだけです。ただし、まだ実装すべきルールがいくつかありますが、ほぼ準備が整っています。
このリリースでは、混在したhtml/css/js/phpのコードフォーマットにも焦点を当てています。htmlコードのインデントがphpコードに影響を与え、その逆もまた然りという点でこれは難しい問題です #171。これで正しく動作するはずなので、フォーマットされた際に、Wordpressテンプレートが良く見えることを願っています。
修正
- 初回のフォーマット要求では、VSCodeを初めて起動した直後に、phpコードのみがフォーマットされました。
- html内にphpタグがある場合でも、HTML対応タグがハイライトされるべきです。#172
- 末尾のカンマを伴う関数引数リストの折り返しがフォーマッターを停止させました。
- ネームスペースの逆スラッシュを前に付けた関数呼び出しのインデントが不正確でした。
- Javascript内のphpコードに不要なスペースが挿入される問題。 #222
- フォーマット時、phpコードのインデントがオープンタグの位置によって誤っている場合がありました。フォーマッターは正しくするために2回目のパスが必要でした。
- コード診断の修正:
- 特定の場合に
parent::が静的呼び出しとして報告されなかった。 - ネストされた矢印関数内のローカル変数が初期化されていないと報告されない。
- Doc Commentがなければ、基底クラスから
@param型を継承。 - 古い
@param構文のサポートを削除 #740。 - ネストされた二項式の制御フロー分析を修正。
- 代替のDoc Comment配列構文、例えば
(int|string)[]のサポートを追加。 - より複雑な一般型継承の型解析を修正。
- 一般的な
IteratorAggregate<TValue>のサポートを追加。 - 一般型がツールチップで正しく伝播され、置換される。
- 特定の場合に
Stable
1.25.11537
ホバーツールチップの改善
新しく、マウスホバーツールチップはパラメータの説明を表示します。この動作は、設定 "php.hover.parameters" を使って変更できます。
マウスホバーツールチップのドキュメントリンクは、新しい設定 "php.hover.documentation" を使用して有効または無効にできます。
ジェネリクス
テンプレート型の推論と置換は、より複雑な型階層を扱うように改善されました。(#723, #733, #731)
修正
-
生成されたドックコメントは
yieldを尊重し、関数にGenerator型ヒントを正しく注釈します。さらに、コード診断はGeneratorを返す関数を尊重し、戻り値の型を正しく分析します。 -
'enum'キーワードはPHP自体の小さなハックです。PHP 5, 7, 8, 8.1以降を正しく尊重するように解析方法を修正しました(#205)。 -
自動関数オーバーライド生成時に括弧
()のオートコンプリートが一度だけ挿入されます(#730)。 -
定義に移動 が修正されました。
フォーマッティング
新しいカスタマイズ設定
約束した通り、皆さんのフィードバックに基づいて、より多くのフォーマッティングオプションを追加しています。
| 設定 | 説明 |
|---|---|
php.format.rules.spaceBeforeParenthesesInArrowFunctions |
アロー関数の括弧の前のスペース |
php.format.rules.spaceAroundConcatenation |
連結 . の周囲のスペース |
php.format.rules.spaceAfterUnaryNot |
単項否定 ! の後のスペース |
php.format.rules.groupUseWrap |
グループuseの折り返し動作を定義 |
php.format.rules.groupUseNewLineBeforeFirstDeclaration |
最初のグループuse宣言前に新しい行を配置 |
foreach
foreach 文のヘッダーを、デフォルトで1行にまとめています(PSR-12で定義されている通り)。
<?php
foreach ($iterable as $key => $value) {
}
PSR-12
PSR-12 のコードスタイルを若干改善しました。現在、標準で指定されたように、マルチラインのグループuse宣言を自動で折り返します。
<?php
use Vendor\Package\SomeNamespace\{
SubnamespaceOne\ClassA,
SubnamespaceOne\ClassB,
SubnamespaceTwo\ClassY,
ClassZ,
};
修正
- 匿名クラスのimplementsリストが複数行で定義されたとき、正しくインデントされていませんでした
- 匿名クラスにも適用可能なimplementsリストの折り返し設定
Stable
1.24.11420
配列シェイプ
エディタは、Doc Comments内で指定されたインライン配列シェイプを今後扱います。以下の構文は正しく、PHPエディタによって理解されます:
<?php
/**
* @param array{ name: string, id: int, data: \App\Model\User } $a The entity.
*/
function foo($a) { .. }
配列シェイプは、配列のキーに対するコード補完を提供し、指定されたインデックスに基づいて配列アイテムの型を解決するため、コード補完と推論された型が向上します。
IntelliSense の改善
括弧の補完
IntelliSenseが新たに関数を補完するときに括弧を補完します。キーボードカーソルは括弧の間に配置されます。オプションとして、この機能を無効にすることも、関数の完全なシグネチャをスニペットとして補完することもできます。これにより、[tab]キーでパラメータ間を移動し、引数を埋めることができます。
この機能は設定"php.completion.parameters"を通じて構成可能です。デフォルトでは"parentheses"に設定されており、括弧()のみを補完します。

Xdebug スタブ
Xdebug 拡張のスタブを追加しました。設定に移動し、"xdebug"を"php.stubs"設定に追加してください:
{ "php.stubs": ["*", "xdebug"] }
これにより、Xdebug 関数がIntelliSense、コード診断に追加され、型推論分析が向上します。
非推奨メッセージ
非推奨のシンボルが使用されると、そのシンボルが取り消し線で表記され、対応する警告が表示されます。さらに今回のリリースで、コード補完ツールチップに非推奨メッセージを追加しています。

注意: 関数を非推奨としてマークするには、以下のように@deprecated ドックコメントタグを追加してください:
/** @deprecated この関数はバージョン1.2.3以降維持されていないため、使用しないでください! */
function getEntity(array $row) : object { ... }
カスタマイズ可能なフォーマッタ
多くの企業は、事前定義されたコードスタイルとは異なるソースコードを作成するときのコーディングガイドラインを持っています。非常にカスタマイズ可能なフォーマッタを導入し、およそ30の異なるコードフォーマットオプションから始めています。これは始まりに過ぎず、次に優先するオプションの提案を受け付けています。
これらのより詳細なコードフォーマットオプションはPREMIUMユーザーのみが利用可能ですが、Communityバージョンユーザーはphp.format.codestyleオプションでフォーマットに影響を与えられます。
例えば、php.format.rules.arrayInitializersAlignKeyValuePairsオプションで配列初期化子のキーと値のペアを自動的に揃えるようフォーマッタに指示できます#692。
$x = [
1 => 'foo',
1234 => 'bar'
];
また、あなたの会社がWhitesmithsスタイルを好む場合は、php.format.codestyleをallmanに設定し、php.format.rules.indentBracesをtrueに設定することで、それをセットアップできます#689。
function foo()
{
echo "Hello";
}
一般にphp.format.rules.*設定を使用してフォーマッタが希望通りに動作するように構成してください。フォーマットオプションの詳細リストについては、設定エディタ(Ctrl+,)を開いて検索バーにphp formatと入力するか、弊社のドキュメントページをご覧ください。
タイプ時のフォーマット
タイプ時のフォーマットがどのように動作するかを再実装しました。これにより、編集しているコードの部分を正確に把握し、;や}を入力したときにフォーマットします。この方法で、コードは常に正しくフォーマットされ、フォーマットコマンドを明示的に呼び出す必要がありません。
この機能を有効にすることをお勧めします。デフォルトではVS Codeで無効になっています。
PHP用にだけ有効にしたい場合は、settings.jsonで次のように設定できます:
"[php]": {
"editor.formatOnType": true
}
フォーマット修正
- 複数のパラメータを持つ関数で、
func_get_argsやfunct_num_argsをボディに含むとフォーマッタが停止していた。 - 複数行のuseトレイトが二重にインデントされていた。
- 特定のステートメントヘッダにネストされたラムダ関数のインデント修正。
- チェーンメソッド呼び出しの連続において、チェーンの一部がフィールドである場合のインデントを修正しました。#715
- 複数行にわたる静的メソッド呼び出しの引数を正しくインデントします。
- 静的フィールドや定数を含む複数行フィールドの使用のインデントを修正しました。
- Nullセーフ演算子がサポートされます。
- 属性がサポートされます。
IntelliSenseの修正
制御フロー
戻らない関数(つまり、戻り値の代わりに例外をスローする)の場合の制御フロー分析を修正しました。これにより、到達不能なコードに関する偽警告が修正され、対応する変数の型推論も修正されました。
ラムダuse ()における末尾カンマ
ラムダ宣言内でのサポートされていない末尾カンマの問題を修正しました(#207)。
Blade
.blade.phpファイル内の@can、@endcan、@forelse、および@emptyの使用を修正しました。
"php.stubs"
設定項目 "php.stubs" が修正されました。ワークスペースをリロードした後に動作しませんでした。
Stable
1.23.11234
"envfile"オプションを含むlaunch.json
新たに、組み込みのPHPサーバーで使用する.envファイルを指定できるようになりました。これは特にLaravelアプリケーションを開発する際に重要です!以下のような起動構成例になります。
{
"name": "Start Built-in Server with .env",
"type": "php",
"request": "launch",
"runtimeArgs": ["-S", "localhost:8888", "-t", "public"],
"envfile": ".env"
}
ドックコメントジェネレーター
生成されるPHPドックが改善されました。可能であれば、プロパティやクラス定数の上に@varを指定します。さらに、関数が決して値を返さないと認識された場合、戻り値の型を@return neverとして注釈します(#193)。
クイックフィックス
ゲッターとセッターのクイックフィックスは、PSR-12に従うようになりました。さらに、正しい形式で型ヒントを指定します。
__construct()の生成に対するクイックフィックス(#198)は、正しい形式でドックコメントを生成するようになりました。生成された関数もPSR-12に準拠しています。
さらに、インターフェースの実装に対するクイックフィックスも更新され、PSR-12に従い、型名を正しく生成します。
PHP 8.2
残りのPHP 8.2の機能がPHPエディターでサポートされています。
- コード補完で特別な属性
#[SensitiveParameter]が新たに含まれています。 - また、定数表現において
enumのケース値が使用可能になっています。RFCに指定されています。
フォーマット
PSR-12
このバージョンでは、PSR-12コードスタイルの新しいルールをいくつか導入しています。特に、複数行に渡る制御文ヘッダーのフォーマット方法をフォーマッターに指示します。
例:
for ($i = 0; $i < 10; $i++
) {
// for body
}
次のようにフォーマットされます:
for (
$i = 0;
$i < 10;
$i++
) {
// for body
}
同様に、implementsのリストが複数行に分かれる場合、最初のアイテムを次の行に、各インターフェースを別々の行に配置します。
関数またはメソッド呼び出しを折り返す際に、どのような引数が使用されているかを考慮します。配列やラムダ関数のように、単一の引数が複数行に渡る場合、引数リストを折り返す理由として考慮しません。(この動作はPSR12の仕様に従っています)
<?php
somefunction($foo, $bar, [
// ...
], $baz);
$app->get('/hello/{name}', function ($name) use ($app) {
return 'Hello ' . $app->escape($name);
});
選択範囲のフォーマット
選択範囲のフォーマットの動作を改善しました。これにより、editor.formatOnTypeとeditor.formatOnPasteが有効な場合に影響します。
修正
JavaScriptフォーマッターがPHPコードにスペースを追加する問題を修正しました(#203)。
また、HTMLフォーマッターがPHPコードの内容を編集する問題も修正しました。これは主にeditor.formatOnPasteオプションが有効な場合に発生しました。
その他、いくつかのフォーマット問題を解決しました:
- コンストラクタの閉じカッコ
)が、ステートメントが複数行の場合に正しくインデントされていなかった問題を修正。 - 特定のケースでコメントが誤ったインデントになっていた問題を修正。
- 単一行のメソッド呼び出しは折り返すべきではありません。 #693
- 本文に
func_get_argsやfunct_num_argsが含まれる関数がフォーマッターを停止させていた問題を修正。 #691 *で始まるマルチラインコメントのみインデントを+1。- 配列初期化子の後に不要な新しい行が追加されていた問題。
- ラムダが包含要素を折り返していた場合、改行されない問題を修正。
- コンストラクタが複数行配列にあった場合の二重インデントを修正。
- 複数のラムダを含む配列のインデントのバグ。 #702
- 括弧付きの式がインデントされませんでした。 #700
- マルチラインの
useトレイト文が正しくインデントされるようになりました。 - オプションの戻り値型の後の新しい行が折り返されていた問題を特定のケースで修正しました。 #704
Stable
1.22.11089
PSR-12 フォーマット
PSR-12 コードスタイルの導入を発表できることを嬉しく思います。前回のリリースでは、PSR-12 準拠のフォーマッタに必要な重要なルールをほぼすべて網羅しました。まだ改善すべき小さな点がありますが、ほぼ完成です。また、デフォルトのフォーマットコードスタイルを古い PSR-2 から PSR-12 に切り替えました。

準拠するために次のルールを追加しました:
catch (OtherThrowableType | AnotherThrowableType $e)の例外タイプ間のスペースを追加- 関数宣言ヘッダーの空白をコンパクト化し、戻り値の型を
)括弧と同じ行に配置
PSR-12 に準拠することは重要ですが、フォーマット後のコードの見た目も重要です。美しさの面でも引き続き取り組んでいます。このリリースで行ったことのひとつは、配列イニシャライザの扱いです。配列内のどこかに改行がある場合、すべての配列要素を新しい行に移動し、インデントします。#683。

同様に、呼び出しパラメータや関数/メソッド宣言でも類似の動作を適用しますが、これは PSR-12 コードスタイルにのみ適用されます。
また、いくつかの軽微なフォーマットの問題を修正しました。
Composer の改善
create-project コマンドが更新されました。新しいプロジェクトの作成場所が明確でない場合、Open Folder ダイアログを開くようになりました。最後に、新しく作成したプロジェクトを VS Code で開きます。
新しいコード診断
新たに、インターフェース内のプロパティの無効な宣言が報告されます。(#174)
また、コード分析はデフォルトの Laravel クラスエイリアスを処理します。これにより IntelliSense に影響を与え、誤ったコード警告を回避します。
下記の 修正 セクションをご覧ください。
修正
コード診断は型の変換 (int -> float の for ループ内での型変換) に関して厳しくなくなり、配列要素の型推論も改善されました(#185)。
次に、可変引数を func_get_args() を使用している関数のコード診断を修正しました。 (#677)
また、composer パッケージが削除または更新された後、問題や IntelliSense が更新されない問題もありましたが、これを回避するための変更を行い、すべてがシームレスに更新されるようになりました。 (#182)
Stable
1.21.10985
関数パラメータ上の@var
エディターは関数パラメータの定義直上のドキュメンタリーブロックを処理します。型指定を伴う@varがある場合、IntelliSense、ツールチップ、およびコード診断全体でパラメータの型として使用されます。
class MyClass {
function __construct(
/** @var T[] */
public readonly $list, // $listはT[]型です
) { }
}
フォーマット
見た目は重要です。そのため、私たちはそれを美しくする努力を続けています:
- プロパティへのアクセスやメソッド呼び出し時、マルチライン式でインデントレベルが増加します #530
- すべてのコードスタイルでPHPタグ内のコードをインデントしています。#173
- HTMLがPHPと組み合わされた場合に予期しない新しい行が挿入されていました #173
- PHP終了タグ
?>は、前の<?php開始タグに従ってインデントされます
改善点
PHPUnitテストビュー
このアップデートでは、テストビュー パネルでのPHPUnitテストの解決を改善しました。テストファイルの処理がより高速になり、ディスクからの冗長な読み取りと解析を避けます。また、テストビューは継承クラスからのテストをサポートするようになりました(#678)。
Stable
1.20.10937
エディターの改善
制御構造のハイライト
制御構造とそれに対応するキーワードのハイライトが追加されました。今後は、カーソルを制御構造上に移動させると、エディターが for、foreach、while、do などの制御構造を、対応する continue や break と共にハイライトします。また、関数内のすべての return、case、および default ラベルもハイライトされます。
また、一致するペアの switch/endswitch、if/elseif/endif、try/catch/finally などもハイライトされます。

ワークスペース内のシンボルのファジー検索
ワークスペース内の検索はファジークエリをサポートしています。つまり、シンボル名がクエリ内の文字に一致します。さらに、大文字を使用して検索する場合は大文字小文字が区別され、キャメルケース記法を迅速に検索できます。

フォーマット
より多くのケースに対応してフォーマットサポートを改良しています。
- キャスト演算子がスペースで分けられるようになりました。(#175)
- コンストラクタのプロパティ昇格が正しくフォーマットされます。#176
- 特定のケースで
::classの後に不要なスペースが追加されました。#530 elseまたはelseifがステートメントの後に続くときには新しい行に配置されます。#530- 参照型が、三項演算子の一部である場合、
?からスペース1つで分けられます。#530
診断の改善
新設定 "php.problems.scope": "opened"
新たにエディターで開かれているPHPファイルのみを診断可能になりました。なお、パースエラーはワークスペース全体で報告されます。
設定 "php.problems.scope": "opened" を設定して、どのように動作するか確認してください。
引数の多すぎるチェック
func_get_args、func_get_arg、または func_num_args の使用をチェックし、可変数の引数を持つ関数が検出されると、_too_manyargs 警告は報告されなくなります。
Stable
1.19.10893
新しいフォーマッタ
組み込みPHPコードフォーマッタを再設計して更新しました。設定 "php.format.codeStyle" を通じていくつかの新しいフォーマットスタイルを提供します。
Allman
Allman スタイルは、Eric Allmanにちなんで名付けられています。このスタイルは中括弧を次の行に置きます。これはすべての制御文および宣言に適用されます。
while ($x == $y)
{
foo();
}
K&R
K&R スタイル(Kernighan & Ritchie Style)は、制御構造、型、関数およびメソッドのために中括弧を同じ行に保持します。
while ($x == $y) {
foo();
}
引き続き以前にサポートされていたコードスタイルを使用できます:
"PSR-2"スタイル、"PHP Tools"と呼ばれるVisual Studioに似たスタイル、- および
"Off"、
フォーマッタはHTML/JS/CSSと連携し、範囲をフォーマットし、ドキュメント全体をフォーマットし、コードブロックまたはステートメントを閉じた後にタイプ時にフォーマットを行います。

フォーマットの修正
以下は修正および実装したフォーマットの問題のリストです:
- アロー関数のフォーマットの修正。
- ネストされた関数呼び出しをフォーマットがサポート。
- 列挙のフォーマットの修正。
match式に関連するフォーマットの修正。- Heredoc および Nowdoc 式はフォーマット中に変更されません。
- グループ化された
use文を正しくインデント。 - 複数行の制御文のヘッダーをインデント。
- ラムダ内の複数行の式がインデントされます。
- コメント付きの空のブロックがインデントされます。
- グループ化された
use文およびmatch式はオプションの末尾のカンマを尊重します。 - 関数パラメータをフォーマットする際の型とアンパサンド
type &$xの間のスペース。 - コメント付きの空のブロックをインデント。
- 匿名型内の複数行の式がインデントされます。
- 複数行の関数およびメソッド呼び出しが正しくインデントされます。
- 新しい行に関数またはメソッドヘッダーのカッコがある場合はインデントされません。
- ラムダ式の後の不正な改行の修正。
- シングルラインPHPブロックをフォーマットが残します。
- 終了タグは常に前のトークンから分離されます。
- 関数の名前付き引数がフォーマットされます。
- 匿名クラスは、クラスヘッダーと同じ行に保持されている場合、
{の前にスペースがあります。 - HTML属性内のPHPコードのフォーマットの修正(例:
<div style="<?php echo "something" ?>">)。フォーマッタはこれ以上追加の空白を追加しません。
To-Doコメントのハイライト
新しくエディターがコード内のTo-Do注釈をハイライトします。これにより、未完成の作業や保留中の問題を追跡するのに役立ちます。

以下の設定を使用してスタイルをカスタマイズできます:
"php.highlight-todo.style" : {
"backgroundColor": "#ec0"
}
または、設定 "php.highlight-todo.enable": false を使用して機能を完全にオフにすることもできます。
デバッガーのコード補完
デバッグ中に、デバッグコンソール に入力すると、既存のローカル変数の名前が提案されます。$ または補完ショートカット(デフォルトでは Ctrl+Space)を入力すると、利用可能なローカル変数が提案されます。

新しい診断
エディターは以下の診断をチェックおよび報告します:
- インスタンスメソッドを静的に呼び出すこと。(#641)
- 型プロパティへの無効な代入。(#647)
- 関数呼び出しに提供された引数が多すぎる。(#645)
- 定数にオブジェクトを使用でき、
@varを伴う Doc Comment をconstの上で扱います。
新しい設定
新しい設定 "php.problems.excludeGitIgnore" (#169) を追加しました。これは、ワークスペースの .gitignore に指定されたファイル/フォルダー内のコード診断を無視することをシンプルにします。
修正
__construct()を生成するためのコードアクションは、テキストエディタのタブとスペース設定を尊重します。- Doc Comment (
/**) の生成がインデントを尊重します。 - 関数の上にDoc Commentを生成することが、カスタマイズされたDoc Commentスニペット(
php.docblock.functionSnippet設定)を尊重します。 - Composerパッケージ追加後にIntelliSenseが更新されないいくつかのケースを修正しました。
Stable
1.18.10692
プロファイラーサポート 🔥
PHPコードのプロファイリングにより、コード内の各関数に対してどれだけの時間と呼び出しが行われたかを確認できます。
詳細はこちら (docs.devsense.com) ...
Xdebugプロファイリングのサポートを追加しました! Xdebugプロファイルファイル(cachegrind形式)は開いて表示し、検査することができます。拡張機能はまた、プロファイリング結果に基づいてコード内のホットパスを強調表示します。
呼び出し時間ビュー:

呼び出し元/呼び出し先ビュー
呼び出し元と呼び出し先の詳細ビュー、時間を含む。

ホットパスデコレーション
プロファイリング結果ファイルが分析され、ソースコード内でホットパスが強調表示されます:

コード診断の更新
- アロー関数内で使用される変数は、もう未初期化として報告されません (#664)。
- 診断
PHP1408およびPHP1409は、今後より低い深刻度で報告されます。
Open-VSX
拡張機能全体が open-vsx.org で利用可能になりました。
その他の改善
- 自動インポートされた 'use' がソートされます (#666)。
- HTMLコードのフォーマット修正。
- コンストラクタープロパティプロモーションのフォーマット修正。
Stable
1.17.10641
新機能を紹介
多くの有用な機能リクエストやフィードバックをいただいており、できるだけ多くの改善を追加するよう努めています。その一環として、新しい内容を簡単に知らせる機能が加わりました。このリリースでは、主要な更新と共にWhat's Newウィンドウを表示し始めました。
ウィンドウはコマンド "PHP Tools: Release Notes" で手動で開くことができます。各主要アップデート後に自動で開く機能は、ウィンドウの下部にあるチェックボックスで無効にすることができます。

デバッグ
デバッグにはいくつかの便利な機能があります!プロファイリングを有効にするための設定が追加され、var_dump() はより見やすく詳細なメッセージを生成し、PHP のための Xdebug はデバッグ開始時に判別されます。
デバッグ develop モード
このリリース以降、develop Xdebug モードを有効にしました。これにより、var_dump() 出力がより見やすく情報豊富になります。
通常のvar_dump()メッセージを好む場合は、launch.json プロファイルの "noDevelop" 設定を変更してください。
デバッグ profile モード
profile モードを今すぐ有効にすることができます。launch.json プロファイルで "profile": true 設定を行ってください:
{
"name": "Launch & Profile built-in Server",
"type": "php",
"request": "launch",
"runtimeArgs": ["-S", "localhost:8000", "-t", "."],
"noDebug": true, // <-- デバッグを開始しない
"profile": true // <-- xdebug.mode "profile" を有効にする
}
キャッチされない例外フィルタ
新たに、デバッグビューではキャッチされない例外を停止するか無視するかのオプションを提供しています。このオプションは「デバッグと実行」ビューの「ブレークポイント」パネルにあります。
コード診断
enumのケース値に対する重複キーの検査を修正しました。(#658)voidの戻り値型ヒントの際の戻り値型チェックを修正しました。- 未使用の
use変数を持つ無名関数を報告します。 - 無名関数の
use変数が初期化されていないことを報告します。 - 空の名前空間を報告します。
voidを返す関数からの値が使用されていることを確認します。void上でのプロパティへのアクセスを報告します。- 文字列補間内の式が
stringに変換可能であることをチェックします。 - プロパティの型が定義されていることをチェックします。
- ユーザーがワークスペースやフォルダーを開かずに単一のファイルを開いている場合、未知のクラスや関数の診断が抑制されます。
- 診断
0412の重大度はエラーに、コード1412(未割り当ての変数使用)に変更されました。
Composer
オールインワンのComposer統合が追加されました!パッケージの要求、削除、閲覧のための有用なコマンドを実装し、composer.pharを自動的にインストールするので手間がかかりません。また、composer.jsonのためのインテリセンス、スクリプト実行のためのコードレンズ、インストールされたパッケージに対するわかりやすいツールチップ、放棄されたパッケージのチェックなども提供します!
その他の改善点
PHP フォーマッタに修正があります。(integer)、(boolean)、または (real)のようなあまり一般的でないデータ型のエイリアスと共に明示的キャストが使用されたときに、フォーマットが実行されない問題が修正されました。
Stable
1.15.10535
コマンド PHP: Search todo ...
PHPコード内のすべてのToDoコメントを素早く閲覧する方法を導入しました。コマンド "PHP: Search todo ..." は、すべてのToDoを含むクイックピックを開きます。選択したアイテムをフィルタリング、検索、ナビゲートすることができます。

ツールチップがより良くなる
関数のシグネチャのホバーチップが長すぎる場合、複数行に分割されます。また、オプションのパラメーターはもう [ ] で示されません。(#159)

さらに、コードコメント内の安全なHTMLタグがツールチップで適切にレンダリングされるようになりました。ドキュメントコメント内に <br/>、 <b>、 <i>、 <ul>、 <li>、 <code> といったタグを含めることが許可され、ツールチップで表示されるときには、きちんとレンダリングされフォーマットされます。

コード診断
さらに多くの診断を追加し、コードフロー分析の珍しいケースをいくつか修正しました。
- 許可されていないスコープの外で
breakまたはcontinueを使用した場合の無効な使用break;に対する診断があります。 try/finallyに関するコード到達可能性の診断が修正されました。- 型ヒント
mixedがあるのに関数が何も返さない場合の関数の戻り値の診断が改善されました。
その他の改善
内部例外の修正や、いくつかのパフォーマンスおよびメモリ使用の最適化があります。
Stable
1.14.10471
- 新しい
"php"タスク定義; 現在設定されている "php" 実行ファイルを使用して、PHPスクリプトを実行するVS Codeタスクを定義できます:// .vscode/tasks.json { "type": "php", "file": "${workspaceFolder}/script1.php", "args": ["argument"] } - 設定
"phpunit.preTask"と"phpunit.postTask"は、テストの前後に実行されるtasks.jsonからタスクまたはタスクリストを指定することができます (#154)。phpunit.preTaskとphpunit.postTask内で実行されるタスクは、${command:phpunit.filter}または${command:phpunit.testsuite}変数を使用できます
/**を入力することによって生成される DocComments (PHPDoc) をカスタマイズするための設定- 診断:
- 重複したフィールド宣言が報告されました
- 重複したクラス定数宣言が報告されました
- 対応する
__get/__set、または@propertyアノテーションがない場合、動的プロパティが報告されました - foreach 制御変数は DocBlock で注釈を付けることができます
- IntelliSense: PHP 8
Attributeクラス宣言がそのメンバーと共に更新されました - getter/setter コードアクションは
staticプロパティを考慮します
Stable
1.13.10390
- 貼り付け時のフォーマットを修正
Stable
1.13.10378
- HTML/CSS/JSエディタ機能の修正
- PHPファイルでのHTML/CSS/JSフォーマットが有効化
- フォーマットが後続のコードを壊す問題の修正 (#156)
Stable
1.13.10301
- PHP 8.2 読み取り専用クラスをサポート。
- 一部の PHP 8.2 互換性チェック。
- 定義へ移動 コマンドが
include/require対象ファイルに移動します。 - 擬似定数のツールチップに正しい値を表示。
- スペースキー(
spaceを押す)をnew、use、extends、またはimplementsの後に押すとコード補完をトリガーします。 - 非標準の Doc Block タイプ名がサポートされます(#622)。
Stable
1.13.10239
- 未知プロパティに対するコード診断 (
PHP0416)- 未知プロパティに対するクイック修正(小さなタイプミスと大文字小文字の違いを修正)
stdClassおよび__get()マジックメソッドを持つクラスは無視される(PHP 8.2 RFCで指定されているように)
- 自動インポート (FQN) は競合名の作成を回避
extendsの後のコード補完は、含まれるクラス自体を提案することを回避- プロパティ名の大文字小文字の違いのチェックを修正
Stable
1.12.10140
Go to Type Definitionコマンドが追加されました。new式における__constructの代わりに型定義に移動します。- PHPUnitビュー: 失敗したテストの場所の追跡を修正しました(#150)
Stable
1.12.10040
- IntelliSenseに含まれる追加のディレクトリを指定できる
php.workspace.includePath設定。 - ワークスペースの読み込みを改善し、ファイルをより効率的に並行処理。
Stable
1.12.10022
- アクティベーションの修正
Stable
1.12.9985
- PHPUnit テスト統合
- PHPUnit テスト用の新しい UI
- インラインで失敗メッセージを表示
- 新しい UI を使用して PHPUnit テストをデバッグ
- 期待値と実際の値の差分
- 拡張機能のサイズを縮小
- 古い
ms-vscode.test-adapter-converterへの依存を回避 (アンインストール可能) - 古い
hbenl.vscode-test-explorerへの依存を回避 (アンインストール可能)
- 拡張機能の読み込みを最適化し、インストールパッケージを縮小
- 型ヒントに基づいて新しいパラメーター名を提案
- 新しく生成された Doc Comment にユニオン型を適切に挿入(関数の上で
/**を入力する際) - 生成された Doc Comment はスローされる例外を注釈(
@throwsPHPDoc タグ) - 外部変更を処理し、composer パッケージのインストール/更新時の再インデックスを修正
- PHPDoc の補完で全クラスを表示し、コミット時に自動的にインポートされる(設定
php.format.autoimportに従う) - Alpine Linux Arm64 プラットフォームの修正
- さまざまなテキスト(さまざまな組み込み関数と定数の要約)に対する
phpTools.language設定の修正 - 未使用の
use警告が二重に表示される問題の修正 - Doc コメント内の変数のリファクタリングのリネーム修正
- テンプレートファイルでの
$thisの誤使用を報告しない - .phpstorm.meta ファイルに記載された関数後の補完を改善
- トレイト内でジェネリック型として注釈されたメソッド後の補完を改善
- Doc Block 内の型名の補完を設定する
php.format.autoimport-docblock設定、デフォルトは"FQN"
Stable
1.11.9762
enumの case の後の補完を修正(補完が表示されない)- 変数のツールチップの修正、解決された型名が正しく短縮されるように修正
Stable
Stable
1.10.9721
- 組み込みの
enumメンバーを補完する際の言語サーバークラッシュを修正しました。
Stable
1.10.9716
- 組み込みの
enumメソッドとプロパティのIntelliSenseサポート。 - 配列型プロパティの型推論を改善。
- Laravelのリアルタイムファサードが認識され、コード補完でサポート。
- Eloquentのローカルスコープをコード補完にリストアップ。
- 未使用のDoc Commentで使用される場合の未使用
useのハイライトを修正。 @testDoc Commentで注釈されたテストのためのTest Explorerを修正。
Stable
1.9.9585
@template型をclass-string<T>型アノテーションと組み合わせて推測- 一部の非標準ファイル拡張子を自動的にPHPファイルとして認識するように(Drupal上でのコード補完が改善)
- 予約された型名(
self、parent、static)の後の補完を修正 - 定数とクラス定数の後の
->構文を修正(PHP 8.1) - 式チェーン中の
newを使用した->の後の補完を修正 - PHPバージョン変更を修正
Stable
1.9.9479
- マルチコアCPUでのLaravel Facadesの推論を改善
- ドキュメンタリーコメントの処理を改善、phpstanとpsalmのより多くの規約を尊重
- ジェネリック型およびジェネリック
@mixin型でのコード補完を改善 - 大規模プロジェクトでのクラッシュの可能性を修正 (StackOverflowの修正)
- サードパーティ拡張が無効なLSPプロトコルデータを渡すときの補完問題の可能性を修正
- 多数の同時要求がある場合のブレークポイント処理の問題を修正
- デバッガーの安定性の向上
Stable
1.9.9277
- IntelliSense
- ジェネリクスのサポート
- IntelliSenseは特殊な型名を処理します
- テンプレート型は束縛されたジェネリック引数に対して解決されます
- ジェネリック型は
new()に渡されたコンストラクタ引数から推論されます - ツールチップはジェネリック引数を表示します
- IntelliSenseは
@template引数と拡張されたPHPDoc構文(ジェネリクス、psalm、phpstan)を理解します - IntelliSenseはジェネリクスのために使用される特別なPHPDocタグを補完します
- コード補完は、値が束縛されていない場合、テンプレート
of型を使用します - コード分析はジェネリクスを尊重します
- 更新されたPHP構文パーサー、
instanceof構文を修正 - composerパッケージのインストール/更新後にIntelliSenseで項目が欠落する問題を修正
- HTML/CSS/JS IntelliSenseの修正
- 外部ファイルの変更後にIntelliSenseで項目を修正
- デフォルトで
zipとzlibを含むスタブ - サードパーティ拡張のためのAPIを提供
Stable
1.8.8970
- 欠落している
MYSQLI_定数を追加 - PHPUnit ランナーを修正; 正しい
phpunitPHP スクリプトを解決 - 空行とインデントを含む HEREDOC および NEWDOC 構文の処理を修正
- PHP 8の
readonly修飾子をコンストラクタのプロパティに許可するようにパーサーを修正 phpTools.language設定を修正し、PHP マニュアルが適切にローカライズされる- 未使用の
useチェックが@MethodPHPDoc タグを尊重 - PHP 実行ファイルと関連する PHP 情報の解決中のフリーズを修正
php.linkedEditing.variables: ローカル変数のリンク編集を有効にする設定(デフォルトはfalse、editor.linkedEditingを有効にする必要あり)editor.linkedEditing: 変数名全体が削除されたときに不適切な編集を回避editor.linkedEditing: 削除後もリンクされた変数名を保持- デバッガーはIPv4とIPv6の両方をリッスンし、省略可能な起動構成
"hostname"をサポート - 配列のためのデバッガー修正
php.version設定は、適合するphp実行ファイルがない場合でもエディターによって認識されるphp.version設定が設定されていない場合、composer.jsonは最低 PHP バージョンがチェックされる- web 拡張機能により、PHP 言語レベルを表示および変更が可能
- 拡張機能は外部依存関係をダウンロードせず、初回実行のスピードと信頼性向上
- 拡張機能はシステムに
dotnetランタイムがインストールされていることを期待しない - 言語サーバーはプロトコル負荷を軽減するために増分テキスト編集をサポート
- 新しいプラットフォームのサポート:
alpine-x64,win32-arm64,darwin-arm64
Stable
1.7.8766
- IntelliSense に
ctypeのブックを更新 - IntelliSense に STD 定数を更新
@ignoreでマークされた関数は補完とシグネチャヘルプに表示されないnewの後の補完に変数もリスト表示- 最適化
Stable
1.7.8717
- ORM記法を使用する際に発生する可能性のある言語サーバーの安定性の修正
"php.debug.port"をワークスペーススコープ設定に設定可能- テストのデバッグを修正; デフォルトで
"php.debug.port"または9003の正しいポートを使用 - Laravelの静的FacadeがIntelliSenseで認識される
- LaravelのクラスエイリアスがIntelliSenseで認識される
- PHPDocによるコードパーサーの改善
Stable
1.7.8637
- web 拡張機能の読み込み修正
Stable
1.7.8627
- デバッガが、1つまたはすべてのポートが利用できない場合に正しく報告します
- IntelliSenseで不足している
E_定数を修正 - PHPUnitデバッガがハードコードされたポート
9000を使用する代わりに、Xdebugポート設定 "php.debug.port" を尊重します
Stable
1.6.8588
- デバッガーの "exclude" 起動設定で
!を接頭辞として使用することでパスを否定できます。例:"exclude": ["!**/app/**", "!**/vendor/mypackage/**"] - 使用可能な Xdebug ポートがない場合、デバッグは開始されません
- Xdebug ポートが使用できない場合、詳細なメッセージがデバッグ出力パネルに報告されます
- インストール: 代替場所での依存関係のダウンロード
- IntelliSense は型ヒントよりも PHPDoc の型注釈を優先します(より具体的な補完)
- Doctrine ORM 属性注釈がプロパティの型注釈に使用されました
- 言語サーバーは Unix ベースシステムでのパフォーマンス向上のためにファイルシステムウォッチャーの使用を避けます (#521)
- 小さいインストールパッケージ
"php.stubs"設定により、IntelliSense、ローカライズされたマニュアル、およびコード分析に含める拡張機能の名前を明示的に設定可能- ローカル変数用のリンク編集 (
"editor.linkedEditing": true) のサポートが追加されました
- 新しいプラットフォームのサポート:
web
Stable
1.6.8479
- 文字列値のプレビューを修正
- ファイル解析を最適化
Stable
1.6.8448
- コード分析でPHP 8.1
readonlyプロパティの不正な宣言を表示 - 仮想PHPマニュアルファイルでのコードレンズの修正(Go To Def (
F12) で組み込みPHPに移動した場合) - 仮想PHPマニュアルがVS Codeの仮想ドキュメントとして表示される(ディスクに一時ファイルを作成しない)
- PHPUnitランナーとデバッガー
phpunit.phpunit設定でphpunitバイナリを指定する
Stable
1.6.8324
- デバッグ装飾
- 拡張された互換性
- enumケース用コードレンズ
php.debug.portおよび起動ポート設定により、複数のポートでのリスニングが可能。デフォルトは[9003, 9000]。
Stable
1.5.8292
- デバッグツールチップとデバッグウォッチを修正
Stable
1.5.8280
- デバッグ 起動の改善、現在のファイルまたはワークスペースに応じてデバッグを開始するためのすべてのオプションを提供
- PHPファイルおよびプロジェクトの実行とデバッグのための高度なコマンドを提供
php.debug.port設定が既定のXdebugポートを指定- エディターは、特に指定がない限りデフォルトでPHP 8.1に準拠
- コードレンズの小さな更新
- "php" が欠如しているという誤った警告を修正
- 拡張機能の依存関係を修正
- 拡張機能の起動時間を修正
Ãレビュー
1.5.8204
- コードレンズ
- 参照、メソッドのオーバーライド、トレイトの使用、型の実装、メソッドプロトタイプの実装
- 参照ウィンドウで参照をピーク
- 有効/無効を切り替える設定:
php.codeLens.enabled。デフォルトはtrue。
- ワークスペースに
phpが設定されていない場合、エディタはphp.executables設定で定義された最高のものを選択します - ヌラブル型ヒント後の補完とツールチップを改善
- プライベート抽象関数を持つ
traitのコード解析を改善 []の使用に関するコード解析を改善- グローバルコードにおける
issetのコード解析を改善 - 抽象メソッドの未実装に関する分析を改善
- PHP 8.1 のインターセクション型の検証 (スカラの使用チェック、有効な型の使用チェック)
- 関数ヘッダー内での補完に欠けている修飾子キーワードを追加
- テストを修正し、すべてのテストを実行可能に (
*Testing*パネルのRun all tests)
Ãレビュー
1.4.8059
- 検出されたPHPバイナリが無効な構成を持っている可能性があり、ユーザーが希望する場合にはPHP Toolsは警告を報告し、それでもバイナリを使用します。
- パラメータータイプヒントで
staticの不適切な使用を診断報告します - 現在のネームスペースに従って、ツールチップ内のPHP 8.1交差型のタイプ名を短縮します
- PHP 8.1構文を用いた色ツールチップを更新しました
Ãレビュー
1.4.8033
- doubleへのオーバーフロー問題の下線位置を修正
- デバッガーが強制引数よりもユーザーの引数を優先
- いくつかの場合において、すでに存在する
useを追加することを提案しないように修正 (#127) - PHPマニュアルを更新
- PHP 8の属性内でのコード補完を更新
- ByRef問題をエラーではなく警告として報告するように変更
- HEREDOCブロックの折りたたみ
- Windowsでの既存の
phpの解決を可能な限り修正 - PHP 8.1 交差型(解析済み、解決済み)
注: 型推論とツールチップはまだ交差型を完全には処理していません
Ãレビュー
1.4.7597
- 組み込み関数の推論型解析を更新
switch内のcaseをハイライト- スタックオーバーフロー例外の可能性を修正
Ãレビュー
1.4.7534
- 大きくネストされた式を含むコードでクラッシュする問題を修正
- 言語サーバープロトコルを修正
array_pad()、array_fill()のコード分析を改善- LValueでの
[]の連続使用に関する誤検知警告を修正 - メモリ最適化
Ãレビュー
1.4.7520
- メモリ最適化
- コードに巨大なネストされた式が含まれる場合のクラッシュ修正
Ãレビュー
1.4.7494
- 関数の戻り値の概要がツールチップに表示される
- リファクタリングのアクションを修正
- コードアクションを修正
- PHPDoc ジェネレーターを修正
- プロトコルを最適化
Preview
1.4.7449
$thisの解析を改善- 未使用変数のエラーレポートを改善
- ドキュメント全体のフォーマットを修正
- 変数のない
catchのフォーマットを修正 - デバッグポートが指定されていない場合の時折発生する問題を修正
- JSONプロトコルの内部パフォーマンスを改善
- ワークスペースなしでのドキュメントデバッグを修正 (ワークスペースやフォルダなしで開かれた単一ファイル)
- PHPマニュアルを更新
- PHPパーサーを修正 -
readonlyがPHPバージョンに応じて適切に扱われるように修正
Preview
1.4.7295
- PHP 8.1 構文、コードセンス、およびチェック
- read-only プロパティ
- final クラス定数
- 初期化子での new
- 新しい callable 構文
- PHP マニュアル更新
- 誤って報告される非推奨の訂正
- 'null' タイプヒント付きの誤ったパラメータの修正
Ãレビュー
1.4.7254
- デバッグ
- 複合起動を許可
- より多くのデバッグセッションを同時に許可
- Xdebug ポートを指定する必要がない (
"port"起動設定)
Preview
1.4.6982
- 自動インポートが有効なとき、補完で可能なすべての名前空間内の型を表示
- 自動インポート時に既存のエイリアスと競合がある場合、完全修飾名を自動的に補完
- 自動インポートが発生する場合、補完に (auto import) を表示
- 変数の補完リストを改善
- 最適化
- 自動インポートする複数の型がある場合、補完リストにすべて表示して選択可能にする
Ãレビュー
1.4.6842
- 補完時のエイリアスの自動インポート
- 設定
php.format.autoimport- 自動インポートオプション: ネームスペースのスコープ外で型/関数/定数を補完する際にエイリアスを自動インポート
- fqn: 補完時に完全修飾名を挿入
- none: 名をそのまま挿入
- hide: コード補完においてアクセスできないシンボルを表示しない
- 名前を完全修飾するためのコードアクションの電球の位置を修正
- コード補完で非推奨のシンボルを取り消し線で表示
Preview
Preview
1.4.6762
- PHPバージョン選択ツール (ドキュメントでPHPの選択を参照)
.editorconfig問題規約 (ドキュメントで問題を参照)"php.problems.scope"設定(デフォルトで "vendor" フォルダーを無視) (ドキュメントで問題を参照)- デバッグの改善
- 例外処理 - 常に致命的なエラーでブレークし、処理されたエラー/例外でブレークするかどうかを選択するオプション
Ãレビュー
1.3.6645
- デバッグの修正と改善
- デバッグのUX改善
Ãレビュー
1.3.6632
- テストエクスプローラー はテストを実行せずにリスト表示
- テストエクスプローラーはデータセットを持つテストを適切にサポート
- ソースが変更された場合、テストは再試行され、(グレー表示)
- 最適化されたデバッグプロトコル
Ãレビュー
1.3.6616
- 新しいテストエクスプローラー (
hbenl.vscode-test-explorerが必要です) - 複数リクエスト処理のサポート、安定性の向上、正確性を伴ったデバッグの更新
- デバッグでデタッチをサポート
- Xdebugプロトコルを最適化
- PHP 8.1 構文サポート、
never返り値の型、enum、8進数表記 $this->の後の静的メソッド補完#[NoReturn]属性がサポートされました
Preview
1.2.6549
- デバッグ実装の修正(予期しないデバッグセッションの終了)
- デバッグブレークポイントの修正
- Xdebugプロトコルの最適化
- HEREDOCパーサーの修正
- 特定の名前に対する名前付きパラメータ解析の修正
- PHP 8の解析と無効な構文エラーの修正
- 最適化
Ãレビュー
1.2.6469
- ソート使用 のコードアクション(PSR-12)
- PHP 8.0以降で非推奨のカールブレースとして報告
- リモートファイルシステムのサポート
- 型解析の改善
Preview
1.2.6305
- ステータスバーにPHPバージョンをサフィックスなしで表示
- macOS用のホットフィックス、ランタイムパッケージをダウンロード
Preview
1.2.6273
- コンストラクタ生成のコードアクション
- フィールドの静的性に対応したgetter/setterのコードアクション
- コードアクションの修正
- より高速なコード補完ポップアップ
- 変数のツールチップ表示をより高速化
Ãレビュー
1.2.6177
- メモリ最適化
- IA-32アーキテクチャ上の Node.JS の修正
- あいまいな関数宣言のための
PHP0423を修正 - 補完で匿名クラスの名前を一覧表示しない
Preview
1.2.6021
- ユーザーが
/**をローカル変数やグローバル変数の上で入力したときに、PHPDoc が生成されるようになりました - PHP 8 の宣言をより多く含むように PHP マニュアルを更新しました
::classおよびfnに関する整形表示を修正しました- 誤って報告される問題をいくつか回避しました
- PHPDoc の
@returnタグ内で予約キーワードの型解析を修正しました - 組み込み型キーワードに関するツールチップに詳細を追加しました
- Xdebug ホームページからダウンロードされるサーバーに対する DBGp プロキシサポートの修正を行いました
Preview
1.2.5988
- 言語サーバーのクラッシュ修正(スタックオーバーフロー例外)
- より寛容な問題の検証
- コード分析の改善
Ãレビュー
1.2.5973
- コード分析の全体的な改善、finallyブロックの修正、制約された定数が報告されない問題
- 名前空間内のグローバル定数に関するリファクタリングと強調表示の出現の修正
- パフォーマンスの向上
- (linux, macOs) VSCodeのシャットダウンやフォルダを閉じた後にサーバーが閉じられない問題の修正
Preview
1.2.5931
- リファクタリングのリネームで動的な名前の変更が可能に
__constructに末尾カンマが含まれるときの言語サーバークラッシュの修正- pcre チェックの更新
- タイプ解析の改善により、誤警告が減少
- 標準関数の解析の向上
- try/catch ブロックの解析の向上
- プロパティの PHPDoc タイプ注釈の不一致に寛容
- タイプチェックがトレイトとインターフェースのサブタイプを考慮し、厳格すぎない
- コードアクションとクイックフィックスの修正
Ãレビュー
1.2.5887
- プレビューを伴うリネームリファクタリング
useグループの整形表示- .NET 5.0上でビルド(
.NET 5.0 Runtimeを持っていると追加のダウンロードが不要) - メソッドを解決する際にサブタイプを処理
- トレイトのユーザを処理し、トレイトの分析やサブタイプのメソッドの定義への移動を改善
- コード解析と型解析の改善
- 多くの誤警告を回避
- 無名クラスの親の定義への移動の修正
Preview
1.2.5843
- ソースが管理されているフォルダー内のファイルは変更時に無視される (.git, .history, .svn)
- ステータスバーのPHPバージョンを修正 - PHPファイルを編集している時のみ表示される
- 最適化
- PCREチェックを更新
- ドキュメントの終端でのコード補完を修正
Preview
1.2.5783
- PHPDocの
@templateアノテーションを考慮 - インラインの
@varアノテーションを処理 - 曖昧なコンストラクタに対するシグネチャヘルプ(
new \ReflectionMethod) - PHPDoc配列型のユニオン要素アノテーション(
array<A\B\C>) - PHPDocでnullable型のアノテーションを許可(例:
?int) - 最適化
- コード分析を改善、一部の偽陽性を回避
- コードフロー分析、isset()、is_resource()、および型推論を改善
- ラムダ関数の使用変数に対する分析を改善
- CLI特定の定数と変数を許可し、コード補完をサポート
- 型推論のために
.phpstorm.meta.phpパーサを更新 - PHP 7.1+使用時にPHP4スタイルのコンストラクタを無視
- 匿名クラスの場合の「実装へ移動」を修正
- ジェネレーター関数の戻り値チェックを修正
__clone()マジックメソッドのチェックを修正、private可能\SplObjectStorageに対する配列アクセスのチェックを修正- 非表示文字のケースと配列キーの重複チェックを修正
Preview
1.1.5686
@mixin注釈のサポート$this戻り値タイプの@method注釈のサポート- PHPDocでのnullable型注釈を処理
- PHPDocブロック内の型名の解決を修正
- 一部の誤報された警告を修正(主に未知のメソッド警告)
- pcreチェックを更新
- linux-arm64にインストール可能
- ツールチップ内の型名を改善
match式のコードフォーマット- クラス宣言のコードバリデーションを修正
- 統合されたPHPマニュアルを更新
Ãレビュー
1.1.5620
- 構文チェックは現在のPHPバージョン(8.0を含む)を尊重します。
- 無効なユニオン型に対するクイックフィックスを追加
- pcreチェックを更新
- ツールチップの型名が短く表示されるようになりました。
Preview
1.1.5595
- 名前付き引数のコード補完 (PHP 8)
- 名前付き引数のホバー情報
#[Deprecated]属性で注釈された関数が診断で報告される- 一致または不明な名前付き引数の診断 (PHP 8)
iterable型ヒントの診断- nullable 型の診断
- ユニオン型の診断 (PHP 8)
- ユニオン内の
null型名 (PHP 8) - 改良された
.phpstorm.metadata.php注釈 - Xdebug 3.0 および PHP 8.0 デバッグのサポート
Preview
1.1.5532
- PSR-2コードフォーマットを更新しました
- 未定義定数の使用に対する警告
PHP0415 - 未定義メソッドの使用に対する警告
PHP0418 - ローカル変数の可能性がある場合の
PHP0415のコード修正 - コード補完内のドクトリンアノテーション
- PHPDoc内のクラス名補完を修正しました
- コード補完と解析のグローバル定数を更新しました
- PHPマニュアルの翻訳を更新しました
Ãレビュー
1.0.5403
- クラスプロパティの解析
- マジックメソッドの型ヒントの修正
- 安定性の修正
Preview
1.0.5342
- PHP 8の新しい属性構文
#[] - より多くのコード提案
- PHPDocで使用されている場合の未使用の
use診断を改善 - 入力中に開いたドキュメントの問題の下線を改善
- クラス/関数内で指定した警告を無視するための
@suppressおよび@SuppressWarningsPHPDocタグ - より多くのPHPDoc配列構文の規約をサポート
isset()およびnew static()の分析を改善
Preview
1.0.5264
- 変数のコード補完での二重ドル記号
$$に関する修正
Ãレビュー
1.0.5229
- 簡略化できる名前に対する診断とクイック修正
- コンストラクタおよびプライベート関数内の未使用パラメータに対する診断
- 外部で変更されたファイル(
*.php)の更新
Ãレビュー版
1.0.5153
@dataProviderPHPDoc属性; コードセンス、ナビゲーション、補完- 欠落した抽象メソッドの実装クイックフィックスは元の
publicキーワードを尊重 - PHP 8.0 のヌルセーフ演算子に対応
- PHP 8.0
match構文に対応(PHP >=8.0phpExecutableが必要) - 問題が重複する場合の
クイック修正の修正 - 安定性の修正
Preview
1.0.5087
- 重複したクイックフィックスを削除
- 括弧で囲まれた式の型分析を改善
- PHPDocで不明な型名に対するクイックフィックス
- マウスホバーで関数が
nullを返すかどうかを表示(voidが最終的にnullとして表示される) - メソッドの実装に移動
- 無効な基底クラスに対するクイックフィックスを提供
namespaceキーワードの後のコード補完
Ãレビュー
1.0.5044
- PHPDocで不明なクラス名のクイックフィックス
- 不要な
useを削除するクイックフィックス iterablephpdoc 型ヒント- 左側のステータスバーにロードステータスインジケーター
- ステータスバー(右下)に現在のPHPバージョンのインジケーター
- コードが変更されたときにワークスペースが遅延再分析されます(無効にするには
"php.problems.workspaceAnalysis": falseを設定)
Ãレビュー
1.0.5029
- 「実装に移動」をサポート
SonarSource.sonarlint-vscodeが非互換として報告されないextendsキーワードの後にあるインターフェース名の「移動」機能を修正- 非推奨の項目は取り消し線で表示される
Preview
1.0.5015
__constructの「すべての参照を検索」にクラスのインスタンス化を含める- 「すべての参照を検索」のパフォーマンス
- 問題の分析の改善
- インラインPHPDocタイプヒントの分析を改善
- 他の問題に関連するいくつかの問題が報告されない
- パーサーの修正
Preview
1.0.4975
- パフォーマンスの改善
- 問題解析の改善
- ワークスペースの読み込みの向上
- ワークスペース読み込み失敗のログ記録
Ãレビュー
1.0.4934
- 単独の
@deprecatedが無視されないように - いくつかのパフォーマンス向上
- 報告された問題の重複を修正
- 他の問題によって引き起こされるいくつかの問題が報告されない
- ワークスペースの読み込みとコード編集の改善
Ãレビュー
1.0.4908
- 誤検知警告を減少
staticおよびプロパティの型解析を改善- PHP 8.0 (Alpha 1) 構文をサポート
- 新しいPHP 8.0互換性警告
- トレイトメンバーの抽象実装を修正
- タブ使用時のフォーマットを改善
Preview
1.0.4698
useクイックアクションの配置を改善しました
Ãレビュー
1.0.4666
- .NET Runtime (3.x または 5.x) がインストールされていないシステム向けの修正
Preview
1.0.4654
- すべてのテストの実行が改善されました(現在単一プロセス内で実行されます)
@methodのPHPDocタイプヒントが現在の名前空間を尊重- アロー関数内のローカルが親スコープから使用され、適切に注釈付けされました
Preview
1.0.4608
現在のスクリプトをコンソールで起動用の設定スニペットを修正- PHPスクリプト内のHTMLツールチップ
<がHTML補完をトリガー- PCREパターンチェック (
preg_*関数内) - PHPDocの
@methodで可変長引数をサポート - 未使用の
useハイライトでカスタムPHPDocタグを考慮 - テストエクスプローラーの修正:
- テスト終了後にデバッグセッションが閉じる
- 追加設定なしでテストケースをデバッグ可能
- テスト実行時の例外を修正
Ãレビュー
1.0.4394
- 変数の補完を修正(
$プレフィックスが重複しない)
Ãレビュー
1.0.4277
finallyブロックのコードフロー解析の改善- システムにインストールされていれば
dotnet3.1 を使用 - マイナーな修正、および安定性の問題への更新
Ãレビュー
1.0.4229
Implement abstractsコードアクション & クイック修正(インターフェースと抽象メンバー)Add getter/setterフィールドおよび複数のフィールド用のコードアクション- 安定性の問題に関する更新
Ãレビュー
1.0.4187
- コードエディタの修正(保存時のフォーマット、貼り付け時のフォーマット時に発生)
- PHPDoc内の補完
Ãレビュー
1.0.4168
- ドキュメント/ワークスペース内のシンボルの一覧表示を改善
$で始まるプロパティを検索して一覧表示- トレイトの使用箇所へのナビゲーション
Ãレビュー
1.0.4145
- 未実装の関数に対する問題チェック
- トレイトに対する問題チェック
- ツールチップとパフォーマンスの改善
- 組み込みPHPマニュアルの更新
- デバッガが一般的な問題をわかりやすく報告
Ãレビュー
1.0.4009
- ツールチップに表示されるハイパーリンクとしての
{@link} - PHPDoc仕様に従って置き換えられる
{@inheritdoc} - Bladeテンプレート編集の更新 (
@section,@yield) とフォーマット修正 - 埋め込みHTML修正
- 安定性の向上、内部エラーログの改善
- 問題報告の改善
Ãレビュー
1.0.3951
- 生成された PHPDoc が型ヒントに従うように
- 生成された PHPDoc がnullable型を正しく扱うように
- 言語サーバーのクラッシュ修正
composer install|updateを実行する際にrg.exeの生成を回避(システムフリーズを修正)
Ãレビュー
1.0.3936
- ワークスペース内のPHARファイルが解析される
- コード補完にPHARファイルからの宣言が含まれる
- 定義へ移動はPHARファイル内のコンテンツをサポートする
- PHARファイル内のエントリを通じたナビゲーション
- PHARファイル内の宣言に対するシグネチャヘルプとツールチップ
- 軽微な修正と改善
Preview
1.0.3774
- 型付きプロパティのフォーマット
useの後の補完がクラス名でフィルターされる- Xdebugからの長いデータの取得
Ãレビュー
1.0.3748
- 現在の名前空間または使用しているものに存在しないクラス/インターフェイス/トレイトがコード補完に表示されない
- 動的クラスエイリアスがコード補完と型解析でサポートされる(
class_alias()とJoomla登録エイリアス) - Bladeブロック内のPHP(
.blade.php)(構文ハイライトを除く) - 参照渡しされた引数の型解析が改善されました
Format on Pasteが有効な場合の貼り付けの問題を修正しました(HTMLが破損していた)
Ãレビュー
1.0.3703
- パフォーマンス最適化
- ワークスペース全体の問題分析を有効/無効にするための
php.problems.workspaceAnalysis設定 - 配列アンパックの型チェック
PHP 7.4サポート
- PHP 7.4サポート(アロー関数、型付きプロパティ、スプレッド配列、
??=演算子、数値のアンダースコア) - PHP < 7.4 使用時に報告されるPHP 7.4の機能
- PHP 7.4機能分析、型分析、問題分析
- スプレッド配列の型チェック
Ãレビュー
1.0.3645
- プロジェクトのロードとバックグラウンド解析を改善
.phpstorm.meta.php(バージョン2016.2+)が処理されるように- IoCのコード補完と解析
- nullableタイプのフォーマットが修正
- 開始ブレース
{のフォーマットが美しく印刷されるように - コードスタイルのフォーマットがデフォルトで
PSR-2に設定
Ãレビュー
1.0.3603
- 一部の警告が消えた後、数秒後に再表示される問題を修正
- ドキュメントの開閉時のCPU使用量を改善
?:と::周辺のフォーマットを修正- コード解析の評価を改善
- 未初期化変数の使用に関する解析の厳格性を緩和
useの後の補完が完全修飾名になるように修正
Ãレビュー
1.0.3593
- マジックメソッドの診断
- 重複した関数パラメーターの診断
- 数値の型解析の改善
- デバッガー起動機能の強化
- PSR-2フォーマッターの修正
Ãレビュー
1.0.3574
explode(),microtime(), Oxidフレームワークの型解析を改善catch変数の診断と解析
Preview
1.0.3547
- フォーマッターの改善
- DBGP プロキシサポート
- 未使用変数診断の改善
Ãレビュー
1.0.3525
- 無名関数の型解析
- PHPDocで注釈された無名関数
- ツールチップでの無名関数の詳細
- 関数の返り値型を含む署名ヘルプ
- 未使用変数の薄暗い表示
- プロジェクトの読み込みパフォーマンス、応答性
Ãレビュー
1.0.3507
- コードフォーマット時に無題ドキュメントの数が増加する問題を修正
- 型解析の改善
- dbgpプロキシの初期サポート
Ãレビュー
1.0.3483
- PHPマニュアルの更新
define()に渡される値の検証- PHP >= 7.3での
define()の使用に関する検証
Ãレビュー
1.0.3471
- ログポイントのサポート
php.format.codeStyleをワークスペーススコープで設定可能- コードフォーマットの修正、オープニングタグ後のインデント、新しい行でのブロック
html+phpのフォーマット修正、重複する範囲のエラー
Ãレビュー
1.0.3435
- ブレークポイントの無効化に関する修正
- デバッグプロトコルを最適化
Preview
1.0.3428
- 最新のPHP 7.3およびPHP 7.4構文に対応するようにPHPマニュアルを更新
- 読本を更新
Ãレビュー
1.0.3386
- foreachでオブジェクトを渡すときの警告PHP0424を無効化
- ラムダ関数内でのuseパラメータの解析
- 軽微なコードナビゲーションの修正
- 軽微なコードフォーマットの修正
Preview
1.0.3348
- シグネチャヘルパーの修正、正しいパラメータを表示
dotnetがない場合に拡張機能が動作するように修正dotnet3.0 に対応
Preview
1.0.3241
- パラメータ名を使用したPHPDocの生成
Ãレビュー
1.0.3230
- プレースホルダー付きで挿入されるPHPDocブロック(スニペット)
- PHPDocタグのスニペット
- PHP互換性警告
- ファイル削除後に消えない警告を修正
die()構文の整形表示を修正- 関数ヘッダーとプロパティのフォーマットを修正
Ãレビュー
1.0.3202
- PHPマニュアルを更新
- タイプ時のフォーマット (
;および}) - フォーマットプロファイル
Off - コードの構文が無効な場合はフォーマットが適用されない
Ãレビュー
1.0.3185
@の後のPHPDocキーワードのためのコード補完- PHPDoc内の誤字や未知の型名に対するコードアクション
Preview
1.0.3174
- 適用可能な場合に
use ;を追加するコードアクション - 必要に応じて型名を完全修飾するコードアクション
- ユーザーが
/**とタイプしたときにPHPDocを生成(formatOnTypeを有効にする必要があります) - 選択フォーマット
- ローカライズされたメッセージ - en, de, ja, tz, es
Preview
1.0.3058
- コードフォーマットの改善
- いくつかのテキストをドイツ語にローカライズ
Preview
1.0.3031
- 折りたたみが内部の範囲を縮小します
- コードスタイル設定
php.format.codeStyleのフォーマット - 複数の
@var/@globalタグを持つローカル変数の PHPDoc - 該当する場合に
$this->を追加するコード提案
Ãレビュー
1.0.3003
- 未知のクラスエラーに対するコードサジェスション
- 不必要な
useディレクティブがフェードアウトとして表示される F10とF11はデバッグを開始し、エントリで停止excludeランチ構成 - ステッピング時にデバッグからスキップされるパターン- デバッガーは変数やプロパティの値を設定可能
- デバッガーは長い文字列をサポート
- デバッガーは大きな配列のページングをサポート
- テストエクスプローラーの最適化
- 生成されたファイルはユーザーのワークスペースに含まれない
- テストエクスプローラーはユーザーのテストのみを表示し、ルートに
phpunit.xmlがない場合のみ、再帰的なディレクトリ内のすべてのテストが表示される
Ãレビュー
1.0.2930
- 表示言語設定
phpTools.languageがワークスペースを再読み込みせずに変更可能 - 設定
php.problems.excludeの変更が問題ウィンドウを更新 - エディター外で変更されたファイルが更新される
- 安定性の修正
Preview
1.0.2915
- デバッガーはスタックフレームとローカル値を検査可能
- 試験的機能: 設定
files.excludeが処理される - 試験的機能: 設定
php.problems.excludeにより、指定したフォルダーおよびすべてまたは指定した問題コードを無視可能 - <?の直後に項目を補完しない
- キャレット下の参照のハイライト最適化
Preview
1.0.2895
- ワークスペースがロードされた後にプロジェクトの問題が更新される
- 一部の誤警告が報告されない
pathMappingsの起動構成- 修正: Unix システムで言語サーバープロセスを閉じる
- 修正: 大規模な混在HTML/JS/CSS/PHPコードの作業
- 新しいオブジェクトの署名ヘルプ
- メモリと性能の最適化
- 安定性の修正
- プロジェクト起動の最適化
- 全ての括弧に対するコード折りたたみ
Ãレビュー
1.0.2802
- ライセンスをアクティブ化/オフラインで試用をリクエストするオプション
- PHPが見つからない場合の警告をミュートするオプション
- テストは自動でロードおよび実行されません(
autorunを有効にするか、reload/startをクリックしてください) - デバッグウォッチのツールチップで展開可能なオブジェクトプロパティを提供
- デバッグ/テストに使用されるPHPとXdebugについて、より詳細な出力ログ
launch.json設定がなくてもF5で現在のスクリプトのデバッグ開始:の後に基本的な補完を提供しません(ただし::は提供)- コード補完が曖昧なトレイト宣言を処理
Preview
1.0.2765
- ワークスペース機能内のシンボル。
php言語にマッピングされたすべてのファイルの処理。- コード補完の改善。
Ãレビュー
1.0.2738
- テストエクスプローラーは phpunit.xml.dist を検出して有効化
- コード補完が曖昧な型をより良く処理
- 通常のオープンタグ
<?phpがない場合に短いオープンタグ<?が許可 - readme とドキュメントを更新
- $ の後の補完を再有効化 (VSCode の最近の更新による修正)
Preview
1.0.2681
- トライアルライセンスをリクエストするオプション
- CDNからの依存関係のダウンロード
- 拡張機能の発行者IDを更新
Preview
1.0.2590
->,$,\,::の後の補完のトリガー- ブロック、コメント、PHPDoc、およびリージョンのコード折りたたみ
- 言語サーバーの提供
- コード補完
- ホバー
- フォーマット
- コード構造
- シグネチャヘルプ
- すべての参照を検索
- ナビゲーション
- 定義へ移動
- リファクタリング
- ハイライト
- コード分析と検証
- デバッグサポート
- ウォッチ
- デバッグマウスウォッチ
- ブレークポイント
- UNC パス
- パスマッピング
- リモートデバッグ、コンソール、組み込みサーバー
- ワークスペース
- UNC パス
- 組み込み PHP サーバー
- PHPUnit テストエクスプローラー
- ライブテスト
- テストデバッガー
- テストブラウザ
- VS Code 向け PHP Tools の初期バージョン



