问题标签 [phpmd]

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 投票
1 回答
154 浏览

composer-php - phpcpd、phpmd、php_codesniffer 等工具的最佳位置是什么

对于 phpcpd、phpmd、php_codesniffer 等工具,将它们包含在 composerrequire-dev部分或作为phar存档安装在系统中的某个位置的最佳位置是什么?

当它们包含在 require-dev 中时,由于项目中的一些旧组件,通常无法更新新版本。如果安装为phar,则更难跟踪此工具的版本,也更难检查这些工具是否已安装。

0 投票
0 回答
225 浏览

php - “$id”类属性名称是否太短?

当用作对象的属性时,例如 User::id 或 File::id,我认为名称“id”非常有意义。然而 PHP Mess Detector 抱怨:

避免使用像 $id 这样的短名称的变量。

我知道, $id 作为局部变量的描述性不够,但类或对象名称应该提供足够的上下文。

如果“id”太短是有原因的,那么命名对象标识符变量的正确方法是什么?为什么?

0 投票
1 回答
4716 浏览

phpmd - 用于测试的 PHPMD 和 PHPCS Camelcase

我刚刚在我的项目中安装了PHPMDPHPCS

现在,我想对它们进行一些定制,但似乎无法实现。

我收到 2 个我想为我的所有项目删除的警告:

  • phpcs:公共方法名称MyTests::my_test_that_should_pass不是驼峰大写格式
  • phpmd:该方法my_test_that_should_pass不是驼峰式的

使用 PHPMD,我尝试更改 :.composer/vendor/phpmd/phpmd/src/main/resources/rulesets/controversial.xml并设置allow-underscore-test此处true提到的

使用 PHPCS,我真的不知道该怎么做。

任何想法???

https://phpmd.org/rules/controversial.html

0 投票
3 回答
1602 浏览

php - 永远不需要 else ,您可以简化代码以在没有 else 的情况下工作

我收到一条 PHPMD 的消息告诉我:

else 从来都不是必需的,您可以在这部分代码上简化代码以使其在没有 else 的情况下工作:

我的问题是:我应该如何避免 else()。我看到的唯一方法是复制$setting->save()并返回。

任何想法?

0 投票
7 回答
218 浏览

php - 应该如何删除其他块

PHPMD 告诉我,我应该在这个测试中避免 else 阻塞,但在这种情况下,我找不到删除它们的方法。

这是代码:

任何想法???

0 投票
1 回答
675 浏览

php - PhpStorm phpmd 自定义规则集

我做了以下

  1. 下载 PHP Mess Detector 插件
  2. 选择一个 PHP 解释器(语言和框架 -> PHP -> CLI 解释器
  3. 确保我的 Mess Detector 插件设置正确并分配了解释器,安装了 phpmd。(Languages & Frameworks -> PHP -> Mess Detector -> Configuration -> 点击 ... -> 点击 Validate

但是当我转到 Languages & Frameworks -> PHP -> Inspections -> PHP Mess Detector validation 并尝试添加自定义规则集时,我收到以下消息:

“当前解释器不支持自定义规则”

0 投票
0 回答
756 浏览

phpstorm - PHPMD 不工作规则 ShortVariable 并忽略 TooManyFields

谁能告诉我为什么在 PHPSTORM 2017.1 和 PHPMD 2.6.0 下某些配置选项不起作用:

  • 短变量

PhpStorm 标记变量

作为“配置的最小长度为 3”

  • 忽略字段 TooManyFields

PhpStorm 显示:“X 类有 21 个字段。考虑提高 X 以保持字段数低于 15”。我搜索并看到了很多文章,但没有一篇适合我。

0 投票
1 回答
476 浏览

php - switch/cases 和 in_array 之间的圈复杂度差异

设想

我需要检查我的$type_id变量是否是一组特定 ID 之一。

除了可读性之外,没有其他原因,我选择了

其中大多数会级联为常见情况。

但这增加了圈复杂度,以至于 PHPMD 开始抱怨。

所以我想,让我们用它in_array()来代替。

问题

至此 PHPMD 停止抱怨,但圈复杂度不仍然存在,只是隐藏在in_array()函数后面吗?

0 投票
2 回答
1743 浏览

php - 在 phpmd 中为规则设置例外

我正在尝试为 phpmd 中的规则设置一个例外,以允许一个特定的函数名称长度仅为 2 个字符

以前的phpmd.xml.dist文件非常愉快地工作:

我已经添加了一个条目rulesets/naming.xml/ShortMethod,所以它现在看起来像:

但是现在当我尝试运行它时出现以下错误:

phpmd 是 2.6.0 版

0 投票
0 回答
128 浏览

php - Ubuntu 16 上的代码嗅探器问题 - 安装 pfff

我正在尝试在我的 Ubuntu 16.04 上设置 PHPCS、PHPMD 我按照这些说明进行操作,但我在安装 pfff 时遇到了困难

现在当我安装 pfff

它给了我错误

我也去了 .config 文件夹,但没有 git 文件夹。虽然忽略了警告,但我执行了下一步,但它显示 .configure 文件未找到。然后我忽略了所有错误并开始 sublime 并完成了 phpcs 设置

在崇高它给了我另一个错误

有什么建议吗?