2014-05-21 113 views
2

我正在嘗試爲特定框架「指南」創建自定義規則集。但是,我希望能夠將嗅探限制爲僅與.php或.phtml文件類型相關。PHPCS限制文件類型

這是可能的,讓Sniff只使用或忽略一個已定義的文件類型,或者我需要在sniffs process()方法中檢查嗎?

+0

在配置文件中,只處理您要使用的標準的文件擴展名。這會實現你想要的嗎?創建您的規則集,然後從命令行運行.php或.phtml文件。 –

回答

2

您可以使用規則集內的正則表達式指定排除模式。通過使用負向預測(或者如果您願意,可以在後面),可以將特定的嗅探或錯誤消息限制爲與模式匹配的文件。

這個例子只能運行在只有一個.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()方法中檢查文件名。

+0

感謝Greg的回覆,這很棒。 –

+0

最後一行是最寶貴的一個 「**如果不是,你需要在你的sniff的process()方法中檢查自己的文件名**」 –

+0

請注意,這將在ruleset.xml中原生可能文件一旦發佈3版本(沒有發佈日期,仍在等待alpha版本發佈)。功能要求如下:https://github.com/squizlabs/PHP_CodeSniffer/issues/656 –