🐤

VSCodeでPHPを書くときにやっておきたいこと

2023/02/18に公開

対象読者

  • VSCodeを使ってPHPを書いているが、設定とかプラグインは何を入れれば良いとかあんまりわかっていない昔の自分のような人

プラグインのインストール

汎用的なやつ

  • Japanese Language Pack for Visual Studio Code(エディターメニューの日本語化)
  • zenkaku(全角スペースを見やすく)
  • indent-rainbow(コードインデントを見やすく)
  • EditorConfig for VS Code(プロジェクト単位でエディタの設定ができるように)

PHP用

  • PHP Intelephense(コード補完や定義元ジャンプ、クラスインポートなど)
    ※名前の似ているPHP IntelliSenseと間違えないように
  • PHP Debug(VSCodeでXDebugが動かせる)
  • PHP DocBlocker(関数定義後にPHPDocの作成をサポートしてくれる)

完全に余談ですがPHPDocの書き方は下記の記事が参考になるため紹介します。PHPDoc?ナニソレ?って方はぜひ一読ください。
Laravel 開発を快適にする PHP Doc (vscode での検証)

任意のやつ

  • Material Icon Theme(アイコン表示用のテーマ)
  • GitLens(GitHub上の編集履歴表示など)
  • その他フレームワークやテンプレートエンジンを使うのであればそれに特化したもの

プラグインの詳細はそれぞれインストール用のページを見たり個別で検索してみてください。

特にオススメしたいPHP Intelephenseの内容は下記の記事が参考になります。
Laravel開発で導入してほしいVSCode拡張機能 (WSLリモート接続)

VSCodeの各種設定

基本設定

本題の趣旨とは少し逸れるかもしれませんが、自分は下記の記事を参考にしています。
Visual Studio Code(VSCode)の初期設定 - @ucan-lab

プラグイン周りの調整

VSCodeビルトインのPHPサポートを無効化する。

PHP IntelephenseというPHPサポート用のプラグインがVSCodeに内蔵されているのPHPサポートと重複しないように、VSCode側を無効化しています。

Quick Start
Disable the built-in VSCode PHP Language Features.

Go to Extensions.
Search for @builtin php
Disable PHP Language Features. Leave PHP Language Basics enabled for syntax highlighting.
Note that other (3rd party) PHP extensions which provide similar functionality should also be disabled for best results.

引用:PHP Intelephense

設定自体は下記の記事を参考にしています。
VSCodeのPHP Intelephenseで構文エラーが消えない問題 - @eighty8

PHP IntelephenseのPHP Versionを指定する。

PHP Intelephenseが使用するPHPのバージョンに合わせて提案を表示するようにPHPのバージョンを指定します。

自身の開発環境(ホストマシン、Dockerなど)でphp -vを実行し、表示されるバージョンを設定しましょう。

設定は下記の記事を参考にしています。
VSCodeのPHP IntelephenseでPHP8.1の記法記載時にエラーがでる - @rowpure

.editorConfigの作成

VSCodeのフッターメニューに表示されている文字コードや改行コード、インデントの大きさなどをプロジェクト単位で設定をしたり、メンバー間で共有できるように設定ファイルを作成します。

プロジェクトルートで下記コマンドを実行して作成しましょう。

touch .editorConfig

作成されたファイルの中身を見ると既に雛形のようなものが出来上がっているかもしれません。

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2

[docker-compose.yml]
indent_size = 4

このファイルに記述することでファイル拡張子ごとに下記のような設定が可能になります。

  • 文字コード
  • 改行コード
  • インデントサイズ
  • インデントスタイル
  • etc...

そして大きなメリットとしては下記のようなものがあります。

  • プロジェクトごとの設定管理
  • 複数人開発時にコーディングスタイルの統一

その他ざっくりとした説明は下記の記事が参考になります。
どんなエディタでもEditorConfigを使ってコードの統一性を高める - @naru0504

まとめ

元も子もないことを言いますが、好みの部分も大きいのでここから少しでも自分に合った内容が見つかれば幸いです。

今回紹介した内容は本当に最低限っていう感じなので、プラスαで色々試してみることをお勧めします。自分も頻繁にお試しでプラグインをインストールして合わなかったらアンインストールするなどしています。

とりあえず使ってみるのが大切だと思うので
(※ここ良いことを言っています)

Discussion