はじめに
- Docker について、WSL2 に移行するまでは、Windows10 に PHP、Composer をインストールし、VSCode とコード静的解析の phpcs を連携させて開発していましたが、移行後に phpcs の恩恵が受けられなくなりました
(not found と VSCode に怒られる…) - 怒られるのはツラいので、WSL2 で利用する Ubuntu ディストリビューションに phpcs を設定し、そちらを VSCode で読み込むようにします
バージョン
- Windows10 Pro
- 21H1
- VSCode
- 1.55.2
- Ubuntu
- 20.04.2 LTS
前提
- Docker で WSL2 に移行が済んでいること
拡張機能インストール手順
中盤までは、ほぼこちらの記事と同様です。
非常に助かりました。(ありがとうございます!)
https://qiita.com/moules449/items/e38220db1bcda6f5fee9
1.以下のコマンドを実行する(Composer インストール準備)
# PHP インストール
sudo apt install -y php
# php-cli インストール(Composer のインストールと実行に必要)
sudo apt install -y php-cli
# php-mbstring インストール(使用するライブラリに機能を提供)
sudo apt install -y php-mbstring
# unzip インストール(圧縮されたパッケージの解凍に必要)
sudo apt install -y unzip
# git インストール(Composer の依存関係パッケージダウンロードに必要)
sudo apt install -y git
# php-xmlwriter(phpcs の実行に必要)
sudo apt install -y php-xmlwriter
# php-curl(composer のインストール高速化に必要)
sudo apt install -y php-curl
2.↓リンク内の Composer インストールコマンドを実行する
https://getcomposer.org/download/
3.以下のコマンドを実行する(phpcs インストール&設定)
# Composer コマンドをどこでも実行可能にする(php と同じ階層に移動する)
# /usr/bin/php があるとして
sudo mv ./composer.phar /usr/bin/composer && chmod +x "$_"
# Composer を最新にする
cd ~/.config/composer
composer update
# phpcs インストール
composer global require "squizlabs/php_codesniffer=*"
# CakePHP 用の phpcs をインストール
composer global require "cakephp/cakephp-codesniffer=*"
# WordPress 用の phpcs をインストール
composer global require "wp-coding-standards/wpcs=*"
# CakePHP を読み込む場合はこちらを実行(CakePHP に切替)
~/.config/composer/vendor/bin/phpcs --config-set installed_paths ~/.config/composer/vendor/cakephp/cakephp-codesniffer
# WordPress を読み込む場合はこちらを実行(WordPress に切替)
~/.config/composer/vendor/bin/phpcs --config-set installed_paths ~/.config/composer/vendor/wp-coding-standards/wpcs/
4.VSCode の settings.json を編集する(phpcs 読み込み設定)
{
// windows10 の設定値はコメント
// "phpcbf.executablePath": "C:/Users/xxxx/AppData/Roaming/Composer/vendor/bin/phpcbf.bat",
"phpcbf.executablePath": "/home/xxxx/.config/composer/vendor/bin/phpcbf",
"phpcbf.standard": "CakePHP",
// WordPress のコード静的解析をしたい場合はコメント解除(上の CakePHP はコメント化)
// "phpcbf.standard": "WordPress",
// windows10 の設定値はコメント
// "phpcs.executablePath": "C:/Users/xxxx/AppData/Roaming/Composer/vendor/bin/phpcs.bat",
"phpcs.executablePath": "/home/xxxx/.config/composer/vendor/bin/phpcs",
"phpcs.showSources": true,
"phpcs.standard": "CakePHP"
// WordPress のコード静的解析をしたい場合はコメント解除(上の CakePHP はコメント化)
// "phpcs.standard": "WordPress"
}
5.保存することで VSCode に反映される
おわりに
- これで、美しくないコードを書いたときに、すぐ気付くことができるようになりました
- WSL2 に移行してから、
bin/cake
の実行権限がないとか、log
ファイルの書き込み権限がないとか、cache
ファイルの書き込み権限がないとか、やたらと怒られるので、とてもしんどいです
(Dockerfile をうまく記述すれば回避できるのか…?) - この記事が他のエンジニアの助けになれば幸いです
- こちらもよかったらどうぞ