问题标签 [codesniffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
395 浏览

php - 样式检查 PHP 渐进式(增量式)

我喜欢对我的代码库进行自动检查,以确保我没有违反风格指南。当我在 Perl 工作时,我会使用Perl::Critic来检查我的风格,并使用Test::Perl::Critic::Progressive来检查任何现有的违规行为,这样我就可以将其应用于现有的代码库。

现在我发现自己在一个 PHP 项目中。PHP CodeSniffer似乎是社区中首选的工具,但我没有看到任何形式的渐进模式。

是否有任何 PHP 样式检查器的“渐进式”模式?

(“渐进式”检查首先捕获所有现有违规的列表,然后阻止它们出现在后续的检查运行中。这意味着允许保留现有的违规,但不允许添加新的违规。)

0 投票
3 回答
9134 浏览

php - 使用 PHPStorm 的 phpcs 自定义规则集

我试图以某种方式说服 phpcs 使用 Zend 编码指南,但 - 允许我使用带下划线的变量(如$blub->foo_bar)。

谁能告诉我如何从 PHPStorm 中更改 phpcs 使用的规则集,好吗?

0 投票
1 回答
3107 浏览

php - OSError:[Errno 13] 使用 Sublime phpcs 包 OSX 10.7 时,python 的权限被拒绝

我尝试将 Php Code Sniffer 与 Sublime 一起使用,但在 sublime 终端中,每次尝试嗅探文件时都会得到以下信息:

看起来某处存在权限问题,但是:

  • 我已将 /opt/local/lib/php/pear/bin 中的 phpcs 文件设置为可执行文件并检查了所有父目录
  • 我已将 sublime 包目录中的 phpcs.py 设置为可执行文件(尽管不确定是否需要它),与父目录同上
  • 我已经检查过了,我可以在命令行上很好地运行 phpcs。它在 PATH 中,它做它应该做的事情并返回没有错误的结果。

根据 ms4py 注释更新输出 - ln 105 处的“打印 cmd”:

0 投票
2 回答
1464 浏览

php - 如何获取 PHP Codesniffer 规则集的所有密钥以与 Sonar 一起使用?

我正在尝试在 phpcs 中添加 Drupal 编码标准。
我可以运行 Drupal 标准 phpcs --standard=Drupal

现在我想用 Sonar 执行相同的标准。

在 Sonar 中,我可以在rules.xml扩展中添加所有规则集的键,但是如何获取这些规则的所有键?

我可以使用文件和文件夹结构识别一些键,*sniff.php但我不确定我是否得到了所有这些键。

谁能建议一种自动化的方法来获取特定标准中的所有可用规则?

0 投票
1 回答
1109 浏览

triggers - 有没有办法或解决方法来拥有一个 perforce 客户端触发器?

我们无权访问服务器,但我们想在将文件提交到 depo 之前运行代码嗅探器。我知道访问服务器触发器非常简单,但是客户端是否有可能拥有类似的东西?所以如果我的脚本返回 1 它应该取消提交操作。

0 投票
2 回答
2420 浏览

php - 命令行工具应用 PHP Codesniffer 提供的建议

我正在寻找一个命令行工具,它将 PHP 代码嗅探器提供的代码格式化建议应用到我的代码库中。

有一些很酷的工具,例如 Eclipse 的 PHP CodeSniffer 插件,但在我的用例中,我需要将其作为批处理而不是手动任务来执行。

0 投票
1 回答
214 浏览

php - JS Lexer 检测函数调用

为了本地化我的 javascript 中使用的字符串,我想扫描我的所有 js 文件以查找此类字符串。

我正在使用一个t()函数来请求字符串翻译,如下所示:

或动态部分:

我想检测对t()函数的所有调用,从而收集 php“build”脚本中第一个参数中包含的字符串,但跳过以下内容:

所以这里的简单规则是被调用的 t 函数必须在全局范围内,以便第一个参数有资格作为翻译字符串。

通常,不允许将动态运行时数据作为第一个参数。的第一个参数t()必须始终是“常量”文字字符串。

我认为php codesniffer会帮助我做到这一点,但是我能找到的所有文档都是关于执行代码标准(或检测违反它的)。我需要对其 js 词法分析器的较低级别的访问。

我的问题是:

  1. php 代码嗅探器的 js 词法分析器能帮我解决我的问题吗?
  2. 如果是这样,我如何访问该词法分析器?
  3. 是否有任何其他 php 库可以帮助我找到对的调用t()

请不要建议独立的正则表达式,因为它们不可能完全解决我的问题。

先感谢您。

0 投票
1 回答
157 浏览

php - 有没有办法让 Netbean 生成的 PHP 单元测试符合 CodeSniffer Zend 标准?

我正在使用 Netbeans 生成 PHP 单元测试,而 CodeSniffer 不喜欢生成的模板,因为它不是 Zend 标准。如何让 PHP 单元测试模板生成 Zend 标准模板,这样它就不会引发所有这些违规行为?

0 投票
2 回答
3125 浏览

php - 由 PHPStorm 中的代码嗅探器触发的 Xdebug

我在安装 PHPStorm 时让 xdebug 和 Code Sniffer 都工作得很好,但真正令人讨厌的部分是调试器现在似乎将 Code Sniffer 错误视为断点并中断代码以让我知道样式警告,而我正在试图测试代码。如何防止 Code Sniffer 被 PHPStorm 中的远程调试器捕获?

PS:我正在运行 Apache,使用虚拟主机将某些 URL 映射到我计算机上的文件夹,并且代码嗅探器从未显式触发 PHPStorm 的远程调试器,而我的站点导致 PHPStorm 询问我是否想包含它的虚拟 URL 以进行调试。

0 投票
2 回答
942 浏览

php - PHP 5.2 升级到 5.3

可能重复:
将 PHP 从版本 5.2 升级到 5.3

我用 PHP 5.3 中已弃用的一些功能实现了 15 个站点。我的托管服务提供商为我提供了一台新服务器,但它安装了 php 5.3。我需要将所有代码升级到 5.3,因为服务器移动迫在眉睫,所以我想知道识别/更正具有已弃用功能的文件的最佳方法是什么。

我尝试使用 PHP_Codesniffer,它给了我文件列表和在 PHP5.3 中不起作用的确切函数,但我仍然需要一个一个地编辑这些文件。是否有另一个扩展程序/程序可以帮助我解决这个问题?(只是试图避免一个一个地进入所有文件的所有繁琐工作)

谢谢