🖋️

VS Codeでのチーム開発(Laravel)について調べた

2022/07/17に公開

はじめに

チーム開発でLaravelをつかったWebApplicationを作ることになりました。
エディターについては VS Code を使うことになったので、
効率の良い開発環境を提供できるように調べてみました。

チームについて

PCについては、 WindowsMac の2種類を開発者が選択して利用している状況です。
プロダクトのバージョン管理は Github で行っています。

他のプロダクトについてもVS Codeで開発する可能性があります。
※ 開発言語はPHP,Laravelに限らない

やる/やらない整理

漠然としたやりたいことリストを作成し、
ネット検索して実現可能/不可能に仕分けしました。
そこからやる/やらないを検討しました。

やりたいことリスト

  • GithubからCloneしたら少ない手順でローカルで起動できる
  • Windows / Mac OSに捉われずどちらでも動作する
  • プロダクト毎にExtension使用状況をカスタマイズできると良い
  • チーム内で同じルールのもとFormatterが適用できる

やるリスト

  • ./.vscode/settings.json を作成しGit管理する
    • GithubからCloneしたら各人が設定せずともすぐ利用できる
    • Windows / Mac どちらでも動作する
  • settings.json に色々用意する
    • チーム内で同じルールのもとFormatterが適用できる

やらないリスト

  • プロダクト毎にExtension使用状況をカスタマイズできると良い
    • 実現方法がわかりませんでした。
      • -> ./.vscode/extensions.json で実現できそう(2022.10.05 add)

settings.jsonの作成

VS Codeの各種設定は settings.json に保存されています。
settings.json については、 ユーザ設定ワークスペース設定 の2種類があります。
ワークスペース設定 が存在する場合、 ユーザ設定 よりも優先されるようです。

ワークスペースとは

(VS Codeにおいて)フォルダとその配下をとりまとめる概念です。
Githubからクローンしてきたリポジトリを1ワークスペースとして保存するようにします。

①作成

Githubで管理しているリポジトリに
./.vscode/settings.json
をCommitします。
.vscode なので注意

最小限必要そうな設定を settings.json に書き込み、Commit&Pushしておきます。
今回だと、

  • PHPのフォーマッタのルール設定
  • HTML,JSのフォーマッタルールの設定
    などが挙がります。

.gitignoresettings.json を追加します。
※ 各人が追加書き込みしても、Gitの管理対象とならないようにしておきます

②周知

VS Codeの設定は ./vscode/settings.json で制御している旨をチームに案内します。
案内方法はリポジトリ直下の readme.md や環境構築資料にあると良いと思います。

環境毎に設定が異なる場合などは、手動で変更する必要がある旨も記載しておきます。
例えば、WindowsとMacだとディレクトリ構造が変わったりするなどなど。

解決策を探している課題

  • Extensionを各々がイントールしなければならない
    • 必要最低限を環境構築資料に記載し、手動でインストールしてもらっている
    • コード管理し、1回のコマンドで必要なものをインストールできるようにしたい
  • Extension利用状況をワークスペース毎に制御したい
    • 開発言語毎にVS Codeの設定を切り替えたい。
      『JavaのプロダクトにPHPのプラグインなんて必要ない。』
      • -> ./.vscode/extensions.json で実現できそう(2022.10.05 add)

おまけ

チーム開発(Laravel)用のExtension

2021年時点で、作業が捗りそうなプラグインを厳選しました。

ExtensionName
Laravel Artisan
Laravel Snippets
Laravel Blade Snippets
Laravel goto Controller
Laravel goto View
PHP Intelliphense
PHP DocBlocker
PHP Namespace Resolver
php cs fixer

Discussion