LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

WSL2のUbuntuでphpcsを使う(VSCode)

はじめに

  • 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 に移行が済んでいること

拡張機能インストール手順

中盤までは、ほぼこちらの記事と同様です。

非常に助かりました。(ありがとうございます!)

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 インストールコマンドを実行する

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 をうまく記述すれば回避できるのか…?)
  • この記事が他のエンジニアの助けになれば幸いです
  • こちらもよかったらどうぞ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2