我试图以某种方式说服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文档中的规定工作,它将会很好。 –