我试图以某种方式说服 phpcs 使用 Zend 编码指南,但 - 允许我使用带下划线的变量(如$blub->foo_bar
)。
谁能告诉我如何从 PHPStorm 中更改 phpcs 使用的规则集,好吗?
我试图以某种方式说服 phpcs 使用 Zend 编码指南,但 - 允许我使用带下划线的变量(如$blub->foo_bar
)。
谁能告诉我如何从 PHPStorm 中更改 phpcs 使用的规则集,好吗?
如果要覆盖内置标准,则需要创建自定义编码标准。这只是创建一个包含标准定义的 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
MyStandard
目录/usr/local/PEAR/PHP/CodeSniffer/Standards
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
可以在 phpstorm 上添加您自己的自定义规则集,这可以在项目设置 => 检查 =>“PHP 代码嗅探器验证”中完成,使用编码标准“自定义”并设置自定义规则集的根目录。xml
标准列表不是硬编码的,它是从 phpcs 获得的。如上所述安装您自己的标准将完成这项工作。