我正在尋找一個命令行工具,它將PHP codesniffer提供的代碼格式化建議應用到我的代碼庫中。命令行工具應用PHP提供的建議Codesniffer
Eclipse中有一些很酷的工具,比如PHP CodeSniffer插件,但在我的用例中,我需要將其作爲批處理而不是手動任務來完成。
我正在尋找一個命令行工具,它將PHP codesniffer提供的代碼格式化建議應用到我的代碼庫中。命令行工具應用PHP提供的建議Codesniffer
Eclipse中有一些很酷的工具,比如PHP CodeSniffer插件,但在我的用例中,我需要將其作爲批處理而不是手動任務來完成。
儘管沒有任何東西可以直接解決PHP_CodeSniffer報告的所有問題,但還有另一個無關項目試圖解決問題而不是報告問題。特別是,它試圖使您的代碼符合新的PSR-1和PSR-2標準,而PHP_CodeSniffer目前只是增加了支持。
它不會解決所有問題,但它可能是儘可能接近你會得到修復一些問題:https://github.com/fabpot/PHP-CS-Fixer
不過,我強烈建議不要在你的代碼運行的批處理固定工具。如果您希望自己的代碼符合編碼標準,那麼您確實需要了解它並隨時間修正錯誤。沒有理由在一次打擊中解決所有問題,根據我的經驗,使用自動化工具這樣做是打破代碼庫的最佳方式。
版本2中的CodeSniffer引入了自動錯誤修復。所有您需要做的是你的CodeSniffer升級到2.0版本,並命令運行它:
phpcbf
,而不是老phpcs只列表錯誤
的更多信息: Fixing Errors Automatically
好代碼格式化程序不會破壞您的代碼。我們沒有;它使用語言精確的解析器來讀取代碼,並使用精確的語言來重新格式化它。您可以在整個代碼庫中將其作爲批處理運行。安全。它不聽CodeSniffer,它可能不會實現CodeSniffer的預期格式。 –
謝謝艾拉。我不知道你的產品是什麼,但你顯然對此非常有信心。當然,我的談話非常普遍。假設您的工具始終使用PHP版本更新進行更新,各版本兼容,並且可以應付開發人員有時編寫的奇怪方式,但我相信它確實非常出色。我仍然不會推薦自動格式化代碼的工具,因爲我是令人難以置信的偏執狂,並且接受開發者犯了錯誤,而且這些工具從來都不是完美的。即使在代碼中出現一個模糊的錯誤也足以導致生產中的問題。 –
那你爲什麼要用PHP?這裏的答案是設計良好的工具值得信賴。你的偏執狂適合與泡泡糖和甩絲綁紮在一起的工具。對於精心設計的工具,生產率的提高超過偶爾的小故障。 (是的,我們也有他們,但他們很少,我們確實努力保持)。 –