在 PhpStorm 中設定 WSL 裡的 phpcs

閱讀時間約 4 分鐘
本文同步刊載於筆者個人網站: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 上我的確沒遇到問題,可是現在新工作後就碰到了奇怪的問題:

raw-image

先看上方這張圖,可以看到我已經設定好 PHP CLI interpeter 是 WSL 中直接安裝(非 Docker)的 PHP,版本是 8.3。

有沒有發現在 coding standard 的選單那邊有一個錯誤提示?PhpStorm 告訴我他無法找到其他 coding style 設定集。

好,接著看一下直譯器的設定:

raw-image

選好 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

結果:

raw-image

老天鵝真的能動了!趕快來去看看外層設定(如果沒變就關閉設定再打開就會重讀):

raw-image

謝天謝地,現在總算能放手開發,不用再擔心不小心寫出 failure style 了(雖然寫久就會知道,不過多個工具檢查總是有益無害)。

為了避免自己之後忘記,特地寫一篇當成筆記,或許未來有需要的人可以搜到這篇並順利解決。

avatar-img
4會員
19內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
hms5232的沙龍 的其他內容
相信應該不少人都有魔法小卡,也很懂得怎麼簽帳消費,不過拿到手上無數張的簽單,你有想過上面的資訊代表什麼意思嗎?
本文分享作者從 Gandi 網域名稱註冊商轉移到 Porkbun 的過程與經驗探討。作者因為 Gandi 續約價格上漲,尋找更具性價比的選擇,最後發現 Porkbun 提供了更優惠的價格和服務。文章詳細描述了轉移過程中的步驟、技巧及感想,希望能為有需要的讀者提供實用的參考。
用更少的能源發揮一樣的效能,真香!換換病壓不住了,在物色好主機板和記憶體後,等到通路一有貨就直接下單了。不過當時的我並不知道,後面還有很多事情在等著我……
在辦理信用卡的時候,除了重要的回饋外,最需要注意的應該就是年費了。在申請卡片之前,都會確認免年費門檻,所以基本上沒有碰到需要「談心」的情況,不過百密一疏還是在這次帳單上看到年費,開啟了人生第一次談心經歷。
最近換換病發作,想說把原本24吋螢幕換一個大一點的,解析度也升級一下,最後選上標題這台。使用了快一週,來一點心得分享吧
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
相信應該不少人都有魔法小卡,也很懂得怎麼簽帳消費,不過拿到手上無數張的簽單,你有想過上面的資訊代表什麼意思嗎?
本文分享作者從 Gandi 網域名稱註冊商轉移到 Porkbun 的過程與經驗探討。作者因為 Gandi 續約價格上漲,尋找更具性價比的選擇,最後發現 Porkbun 提供了更優惠的價格和服務。文章詳細描述了轉移過程中的步驟、技巧及感想,希望能為有需要的讀者提供實用的參考。
用更少的能源發揮一樣的效能,真香!換換病壓不住了,在物色好主機板和記憶體後,等到通路一有貨就直接下單了。不過當時的我並不知道,後面還有很多事情在等著我……
在辦理信用卡的時候,除了重要的回饋外,最需要注意的應該就是年費了。在申請卡片之前,都會確認免年費門檻,所以基本上沒有碰到需要「談心」的情況,不過百密一疏還是在這次帳單上看到年費,開啟了人生第一次談心經歷。
最近換換病發作,想說把原本24吋螢幕換一個大一點的,解析度也升級一下,最後選上標題這台。使用了快一週,來一點心得分享吧
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
你可能也想看
Google News 追蹤
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
戴夫寇爾研究團隊發現PHP在Windows系統上存在遠端程式碼執行漏洞,影響多個PHP版本,包括XAMPP預設安裝環境。漏洞源於字元編碼轉換的問題,允許攻擊者在遠端伺服器上執行任意程式碼。建議使用者立即升級至最新PHP版本,或採取臨時緩解措施。
Thumbnail
由於開發多個專案的時候,頻繁切換本地環境的PHP版本實在太麻煩,於是想要可以直接使用指令就完成切換的功能,於是有了這篇文章。
Thumbnail
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Thumbnail
PHP是一個功能豐富且靈活的語言,用於開發動態和互動性強的網站。本文介紹了PHP的主要功能和用途,以及它的優點和特性。不論你是一個初學者還是一個專業的開發人員,PHP都是一個值得學習和使用的強大工具。
Thumbnail
php.ini 1.short_open_tag = On 2.register_globals = Off 3.display_errors = On 4.error_reporting = E_ALL & ~E_NOTICE 5.date.timezone = Asia/Tai
今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧! 先讓我們規畫擬訂測試案例: 測試案例 當使用者瀏覽文章清單頁時: 使用者可看到所有文章清單,也就是【文章清單API】要能確實將資料庫內的文章資料,筆數不多不少地回應出來。 當使用者瀏覽單一文章頁時: 使用者可看到該文章資料,也就是【
在前面的篇幅中,與大家分享了許多撰寫 PHPUnit 測試程式碼所需的知識,之後的文章就讓我們來來模擬一些情境題,並在這些情境題底下,實際去設計測試案例函數吧! 作為第一個情境題,我們就選「網站文章」來當作第一個挑戰吧! 這邊我們假設網站是採前後端分離的設計,因此我們就專注在測試 API 的部分
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
戴夫寇爾研究團隊發現PHP在Windows系統上存在遠端程式碼執行漏洞,影響多個PHP版本,包括XAMPP預設安裝環境。漏洞源於字元編碼轉換的問題,允許攻擊者在遠端伺服器上執行任意程式碼。建議使用者立即升級至最新PHP版本,或採取臨時緩解措施。
Thumbnail
由於開發多個專案的時候,頻繁切換本地環境的PHP版本實在太麻煩,於是想要可以直接使用指令就完成切換的功能,於是有了這篇文章。
Thumbnail
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Thumbnail
PHP是一個功能豐富且靈活的語言,用於開發動態和互動性強的網站。本文介紹了PHP的主要功能和用途,以及它的優點和特性。不論你是一個初學者還是一個專業的開發人員,PHP都是一個值得學習和使用的強大工具。
Thumbnail
php.ini 1.short_open_tag = On 2.register_globals = Off 3.display_errors = On 4.error_reporting = E_ALL & ~E_NOTICE 5.date.timezone = Asia/Tai
今天就讓我們依照前一天的情境題,來撰寫測試案例函數吧! 先讓我們規畫擬訂測試案例: 測試案例 當使用者瀏覽文章清單頁時: 使用者可看到所有文章清單,也就是【文章清單API】要能確實將資料庫內的文章資料,筆數不多不少地回應出來。 當使用者瀏覽單一文章頁時: 使用者可看到該文章資料,也就是【
在前面的篇幅中,與大家分享了許多撰寫 PHPUnit 測試程式碼所需的知識,之後的文章就讓我們來來模擬一些情境題,並在這些情境題底下,實際去設計測試案例函數吧! 作為第一個情境題,我們就選「網站文章」來當作第一個挑戰吧! 這邊我們假設網站是採前後端分離的設計,因此我們就專注在測試 API 的部分