3

我正在使用 PHP Mess Detector 1.5.0 并且有许多问题,我认为这些问题不是问题。

class FOO
{
    const NEW_LINE = "\n";
    const ADD = 1;
    const DELETE = 2;
    ...

    public function __construct($OptionOne = self::ADD)
    {
    }
}

在这段代码中,我使用类似于 C++ 中的枚举的常量来处理选项。因此,如果我想添加一些东西,我将代码中的 FOO::ADD 传递给类,这与 1 相同。

我可以在 PHPUnit 中毫无问题地测试这个类,因为我验证了常量,然后我可以将值和常量传递给函数。

我不确定为什么 PHPMD 会抱怨这一点,特别是因为它是一个在 PHP 中安全引用的 const 值。

4

1 回答 1

2

因为我使用了很多self::作为常量,所以将 phpmd 代码更改为接受self::parent::

在程序 PHP/PMD/Rule/CleanCode/StaticAccess.php 的第 36 行,更改为:

if ($this->isReferenceInParameter($reference)
    || $reference->getImage() === 'self' 
    || $reference->getImage() === 'parent' 
    ) {
    continue;
}
于 2014-05-25T15:33:25.623 回答