我試圖以某種方式說服phpcs使用Zend編碼指南,但允許我有下劃線變量(如$blub->foo_bar
)。自定義規則集phpcs使用PHPStorm
有誰能告訴我如何更改phpcs在PHPStorm中使用的規則集嗎?
我試圖以某種方式說服phpcs使用Zend編碼指南,但允許我有下劃線變量(如$blub->foo_bar
)。自定義規則集phpcs使用PHPStorm
有誰能告訴我如何更改phpcs在PHPStorm中使用的規則集嗎?
如果您想覆蓋內置的標準,則需要創建自定義編碼標準。這只是創建一個XML文件的標準定義。
就你而言,你需要整個Zend編碼標準,但是你不需要關於變量名的特定命名約定規則。所以,你會創建一個名爲mystandard.xml
文件(命名爲任何你想要的,並把它放在任何你想去的地方),並把下面的內容:
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom Zend coding standard.</description>
<rule ref="Zend">
<exclude name="Zend.NamingConventions.ValidVariableName"/>
</rule>
</ruleset>
有很多你可以做更多來定製你的標準,其中包括引入來自其他標準的檢查,覆蓋消息或將其中的一些靜音。你可以看看這裏的文檔:http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php
最後我檢查,PHPStorm不讓你使用自定義編碼標準,無論出於何種原因。通常,您只需輸入標準名稱作爲mystandard.xml
文件的完整路徑。如果PHPStorm仍然不讓你這樣做,欺騙它的唯一方法是實際安裝自定義標準。
請注意,這不是您通常需要做的事情,而且有點複雜。但是如果你想嘗試一下,你可以這樣做:
pear config-show | grep php_dir
。 PHP_CodeSniffer將位於該目錄下。對我來說,PEAR安裝在/usr/local/PEAR
,所以PHP_CodeSniffer在/usr/local/PEAR/PHP/CodeSniffer
/usr/local/PEAR/PHP/CodeSniffer/Standards
MyStandard
新目錄直接把你的mystandard.xml
文件存在,但其重命名爲ruleset.xml
要確認標準已安裝,運行phpcs -i
。您應該看到
The installed coding standards are MySource, MyStandard, PEAR, PHPCS, Squiz and Zend
現在,PHPStorm將顯示(希望)MyStandard
在下拉選項。如果它沒有顯示出來,那麼他們可能已經對列表進行了硬編碼,並且沒有任何方法可以讓它工作而不用直接破解Zend編碼標準。
我希望信息可以幫助您找到解決方案。如果沒有,你可以隨時直接使用自定義標準的命令行上運行PHPCS:
phpcs --standard=/path/to/mystandard.xml /path/to/code
的標準清單沒有硬編碼的,它是從phpcs獲得。如上所述安裝自己的標準將完成這項工作。
可以在phpstorm中添加自己的自定義規則集,這可以在項目設置=>檢查=>「PHP代碼嗅探器驗證」中完成,使用編碼標準「自定義」並設置您的根目錄自定義規則集。xml
我花了下午的好一段時間試圖讓這個工作。 PHPStorm甚至不會加載已安裝標準的列表,檢查器設置中的唯一選項是空白和自定義的,甚至選擇自定義的驗證選項從不顯示。我可以讓phpcs正確運行CLI,但如果按照PHPStorm文檔中的規定工作,它將會很好。 –