LoginSignup
4
2

More than 1 year has passed since last update.

WSL2のUbuntuでphpcsを使う(VSCode)

Last updated at Posted at 2021-04-20

はじめに

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

4
2
0

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
  3. You can use dark theme
What you can do with signing up
4
2