- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我试图以某种方式说服 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
/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
关于php - 使用 PHPStorm 的 phpcs 自定义规则集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585274/
场景 有时,我想运行 PHPCS,但让它忽略一个规则,在本例中是 Camel Case Method Name 规则。 我知道我可以创建一个新的规则集,它从另一个规则集继承所有规则集,并排除一个规则集
我有以下代码: /** * @param TranscodingJob $transcodingJob * * @return TranscodingJob * @throws \Lexik\
当我输入 phpcs --version 时,我没有得到版本号,而是得到了这样的信息: /Applications/drupal/php/bin/phpcs: line 2: ?php: No suc
我目前正在清理现有的代码库,其中一个方面涉及使用 PHPCS。这是我的phpcs.xml当前文件: vendor/* node_m
我正在尝试为特定框架“指南”创建自定义规则集。但是,我希望能够将嗅探限制为仅与 .php 或 .phtml 文件类型相关。 这是否可能让 Sniffs 仅使用或忽略定义的文件类型,或者我是否需要在 s
我正在使用 laravel 4.2。 假设有这样一个类: class BShopsController extends ShopsController 为了解决这个问题,我尝试使用命名空间让我们这样说
我了解如何使用 xml 配置 phpcs,但找不到如何禁用某些嗅探。这是我目前的配置(甚至不知道这是否正确):
我在我的机器上运行 Php 7.0,但我需要检查在 7.0 和 5.6 中执行的代码。因此,我得到了 Squiz.Commenting.FunctionComment.ScalarTypeHintMi
我也花了几个小时在谷歌上搜索答案,然后再问,在 phpcs 中我有这个错误“未指定 PHP 版本”,但我在谷歌上找不到答案,最终我遇到了这个“PHP 版本 5”清除了错误,但我感到困惑,因为 PHP
我已经按照 this answer 安装了 phpcs ,并将以下内容添加到我的 Visual Code settings.json: { "phpcs.enable": true,
是否有任何选项可以将 phpcs 修复程序结果的输出存储到文件中? 我试过下面的 phpcs --standard='Symfony' -a 'path' --report-file='~/Users
我在 phpcs.xml 中定义了一些嗅探,如下所示: 我的意图是以细化的方式逐渐收紧 CS 规则(还有更多排除项)。 但是,当我尝试运行 CBF 时,它因相同的嗅探名称而失败: $ .
我尝试为 WordPress 实现一个插件,并使用 phpcs 和 WordPress 标准。 就我而言,问题在于 phpcs 的默认 WordPress 标准也会检查 WordPress-VIP,这
我有一个自定义的 phpcs 规则集文件,我在其中包含了几个规则集,还从某些目录(如测试或供应商)中排除了文件。 完整的 phpcs.xml 配置文件位于 https://github.com/sud
我有一个自定义的 phpcs 规则集文件,我在其中包含了几个规则集,还从某些目录(如测试或供应商)中排除了文件。 完整的 phpcs.xml 配置文件位于 https://github.com/sud
我们在项目中使用 PSR0、PSR1 和 PSR2 标准,但我想从 PSR0 命名空间检查规则中排除特定文件。有没有办法可以在文件中添加注释,所以 phpcs 会忽略这条规则: 每个类必须在至少一个级
PHP 代码嗅探器 phpcs: Can not correctly run the tool with parameters: C:\Users\sa\AppData\Local\Temp\___0
我正在尝试运行 PHP CodeSniffer,但出现错误。 PHP Code Sniffer phpcs: Can not correctly run the tool with parameter
我的 TestMyClass.php 在同一个文件(单元测试类)中有两个类定义,PHP Code Sniffer 提示每个类必须单独在一个文件中 .我怎样才能抑制这个警告? class MyCla
我现在已经花了 2 个多小时试图弄清楚如何在方法声明的同一行中要求 {,而不是默认要求在下一行。我怎样才能完成这个?我已将 PSR2 标准复制到一个名为 PSR2 的新文件夹中,以便能够根据自己的喜好
我是一名优秀的程序员,十分优秀!