我正在嘗試爲特定框架「指南」創建自定義規則集。但是,我希望能夠將嗅探限制爲僅與.php或.phtml文件類型相關。PHPCS限制文件類型
這是可能的,讓Sniff只使用或忽略一個已定義的文件類型,或者我需要在sniffs process()方法中檢查嗎?
我正在嘗試爲特定框架「指南」創建自定義規則集。但是,我希望能夠將嗅探限制爲僅與.php或.phtml文件類型相關。PHPCS限制文件類型
這是可能的,讓Sniff只使用或忽略一個已定義的文件類型,或者我需要在sniffs process()方法中檢查嗎?
您可以使用規則集內的正則表達式指定排除模式。通過使用負向預測(或者如果您願意,可以在後面),可以將特定的嗅探或錯誤消息限制爲與模式匹配的文件。
這個例子只能運行在只有一個.phtml文件DoubleQuoteUsage嗤之以鼻:
<rule ref="Squiz.Strings.DoubleQuoteUsage">
<exclude-pattern>*\.(?!phtml$)</exclude-pattern>
</rule>
但目前PHPCS版本使用|
作爲分隔符正則表達式,和逃避這個角色似乎沒有在PHP工作。我剛剛致力在phpcs定影液分支(版本的2.X線)爲這個改變,讓你做到這一點:
<rule ref="Squiz.Strings.DoubleQuoteUsage">
<exclude-pattern>*\.(?!(php$|phtml$))</exclude-pattern>
</rule>
如果你想給一個去,你可以克隆git repo,檢出phpcs-fixer分支並直接運行代碼。或者您可以通過作曲家要求2.0.*@dev
。
如果不是,你需要在你的sniff的process()方法中檢查文件名。
感謝Greg的回覆,這很棒。 –
最後一行是最寶貴的一個 「**如果不是,你需要在你的sniff的process()方法中檢查自己的文件名**」 –
請注意,這將在ruleset.xml中原生可能文件一旦發佈3版本(沒有發佈日期,仍在等待alpha版本發佈)。功能要求如下:https://github.com/squizlabs/PHP_CodeSniffer/issues/656 –
在配置文件中,只處理您要使用的標準的文件擴展名。這會實現你想要的嗎?創建您的規則集,然後從命令行運行.php或.phtml文件。 –