我正在尝试为特定框架"指南"创建自定义规则集。但是,我希望能够将嗅探限制为仅与.php或.phtml文件类型相关。
是否可以让Sniffs仅使用或忽略已定义的文件类型,或者我是否需要在sniffs process()方法中进行此检查?
答案 0 :(得分:2)
您可以使用规则集内的正则表达式指定排除模式。通过使用否定前瞻(如果您愿意,可以使用后面),您可以将特定的嗅探或错误消息限制为与模式匹配的文件。
此示例仅在.phtml文件上运行DoubleQuoteUsage嗅探:
<rule ref="Squiz.Strings.DoubleQuoteUsage">
<exclude-pattern>*\.(?!phtml$)</exclude-pattern>
</rule>
但是当前的PHPCS版本使用|
作为正则表达式的分隔符,并且转义该字符似乎在PHP中不起作用。我刚刚在phpcs-fixer分支(2.x系列版本)中对此进行了更改,允许您执行此操作:
<rule ref="Squiz.Strings.DoubleQuoteUsage">
<exclude-pattern>*\.(?!(php$|phtml$))</exclude-pattern>
</rule>
如果你想放手一搏,你可以克隆git repo,检查phpcs-fixer分支并直接运行代码。或者您可以通过作曲家要求2.0.*@dev
。
如果没有,您需要在sniff的process()方法中自行进行文件名检查。