本文同步刊載於筆者個人網站:https://hhming.moe/post/phpstorm-wsl-configure-phpcs/
最近因為$$的關係,換去了新的工作。不過不幸的是新的工作大家都用 Windows + WSL 開發,不像我之前可以直接原生 Linux 用爽爽。往好處想,至少不是都用 Mac,這個大概會讓我直接往生,除非逼不得已不然不會選的。
不過也因為這樣,發現 Windows 11 的 WSL 進步好多,現在有 systemd 了,不像以前只能 call service
來看程序;也不用再跑設定才能讓 port 映射出來。不知道 Windows 10 的是否也有跟上,如果有的話就太好了。可是可以的話,到時還是直接 Framework 裝 Ubuntu 比較乾脆。
回到正題,在歡欣之餘,也碰到一些問題,最麻煩的就是今天主角──PhpStrom 中的 PHP_Codesniffer。
PhpStrom 都幫你整合好了,只是設定個 PHP_Codesniffer 能有什麼問題?
在 Ubuntu 上我的確沒遇到問題,可是現在新工作後就碰到了奇怪的問題:
先看上方這張圖,可以看到我已經設定好 PHP CLI interpeter 是 WSL 中直接安裝(非 Docker)的 PHP,版本是 8.3。
有沒有發現在 coding standard 的選單那邊有一個錯誤提示?PhpStorm 告訴我他無法找到其他 coding style 設定集。
好,接著看一下直譯器的設定:
選好 composer 全域安裝的 phpcs 後按下 validate,嗯……Can not run PHP_Codesniffer?
在來回操作了幾次後都沒辦法成功,想說算了先不管他,回去編輯程式碼。欸,會動啊?走 PSR2,而且如果在 PhpStorm 設定關閉 PHP_Codesniffer 也真的就不會提示了,代表明明就能執行,是在唬爛我?
原本還想過說用 PhpStorm 中的 external tool 功能,可是發現有點難用,還要自己手動點就放棄了,整合度比不上有毛毛蟲在程式碼底下的 Quality tool。
中間其實過了快兩週XD最後我真的受不了了決定再多試幾次,真的不行就直接放棄,關閉 PhpStrom 中的 PHP_Codesniffer 改去 Coding Style 設定就好(只是這樣好像不會每個規則都跳提示)
在我來回嘗試各種方法的時候,突然想到曾經在 StackOverflow 上看過有人說,不要用 PhpStorm 檔案選取器自動填入 \\wsl
開頭的,改成一般 Linux 使用的斜線路徑。於是我把 PhpStrom 中的 PHP_Codesniffer path 設定改成:
/home/username/.config/composer/vendor/squizlabs/php_codesniffer/bin/phpcs
結果:
老天鵝真的能動了!趕快來去看看外層設定(如果沒變就關閉設定再打開就會重讀):
謝天謝地,現在總算能放手開發,不用再擔心不小心寫出 failure style 了(雖然寫久就會知道,不過多個工具檢查總是有益無害)。
為了避免自己之後忘記,特地寫一篇當成筆記,或許未來有需要的人可以搜到這篇並順利解決。