VSCodeの拡張機能のphp-intellisenseはインストールはしたものの上手く動かないケースがあります。よくある確認箇所について紹介します。 そもそも動作してる? php-intellise…
PHP用の拡張機能としてVSCode公式からもリンクされている「PHP IntelliSense」ですが、実はあまり評判がよくありません。
他にもPHP用の拡張機能がいくつかリリースされており、その中でも優れていた「Intelephense」をお勧めしたいと思います。
目次
PHP IntelliSense のイマイチなところ
- ワークスペース読み込み時に全ディレクトリ内のファイルのキャッシュを作るので立ち上がりが遅い
- 定義へ移動しようとすると待機中のまま固まるなど、動作が不安定になることが多い
- メモリを大量に消費していることがある
- Language Serverでエラーが発生していることがある
- 拡張機能の更新・修正頻度が全然行われない
Intelephenseがオススメな理由
レーティングの星の数にも現れていますが、Intelephenseの方が評価が高いです。
その理由は単純で、求められる当たり前のことが当たり前に出来ているだけです。
- 早い、正確、CPUリソースの消費が少なく軽い
- インテリセンスが正確で期待通りの動きをしてくれる
- 改修頻度が高い
有料オプションについて
無料の拡張機能でしたが、2019年8月に一部機能は年間10ドルの有料オプションとなりました。
ただし、これまで実装されてきた機能は無料のまま、問題なく使えます。
有料になるのは、新しく追加される以下の機能です。
- Easy rename of symbols. When appropriate, files/folders are automatically renamed too.
(シンボルの簡単な名前変更。 必要に応じて、ファイル/フォルダーの名前も自動的に変更されます。) - Accurate code folding of definitions, blocks, use declarations, heredoc, comments, and custom regions.
(定義、ブロック、使用宣言、ヒアドキュメント、コメント、およびカスタム領域の正確なコード折りたたみ) - Quickly find all implementations of interfaces and abstract classes and associated methods.
(インターフェイス、抽象クラス、および関連メソッドのすべての実装をすばやく見つけます。) - Fast go to type definition of typed variables and parameters.
(型指定された変数とパラメーターの型定義にすばやく進みます。) - Fast go to declaration for methods implementing an interface or abstract method declaration.
(インターフェイスまたは抽象メソッドの宣言を実装するメソッドの宣言にすばやく進みます。)
他の有力な選択肢として「PHP Tools for VS Code」
Visual Studioで10年以上、PHP拡張機能をリリースしていたDEVSENSEの拡張機能が来ていました。
品質は保証されていると思われますが、それ以前に選択肢に入れづらいのが高いからなのです。
個人で買うには厳しく、会社に買ってもらうにしても結構な金額です。
この金額払うならPHPStormのライセンス契約すればいいんじゃ…という思いもありますが、VSCodeで大規模なPHP開発をする場合は選択肢のひとつではないでしょうか。
コメントを書く