【发布时间】:2014-11-06 22:31:19
【问题描述】:
我目前正在尝试删除 PHPStorm 中的检查工具给我的项目中的所有错误和警告。
我遇到一个 sn-p PHPStorm 说“未使用的私有方法 _xxx”,而它实际上被使用了,但是是以动态的方式。这是一个简化的 sn-p:
<?php
class A
{
private function _iAmUsed()
{
//Do Stuff...
}
public function run($whoAreYou)
{
$methodName = '_iAm' . $whoAreYou;
if (method_exists($this, $methodName)) {
$this->$methodName();
}
}
}
$a = new A();
$a->run('Used');
?>
在这个 sn-p 中,PHPStorm 会告诉我“未使用的私有方法 _iAmUsed”,而事实上,它已被使用... 我怎样才能通过添加 PHPDocs 或其他东西,让我的 IDE 了解我的方法实际被使用?
请注意,我给我的“运行”调用一个静态字符串,但我们也可以这样想象:
<?php
$a->run($_POST['whoYouAre']); //$_POST['whoYouAre'] == 'Used'
?>
非常感谢!
【问题讨论】:
-
仅供参考,IDE 警告只是为了让您知道可能有问题。删除所有这些(无论如何都是任意的)并不是一个真正可行的目标。
-
是的,您不应该过多地迎合 IDE 的表面分析(在 PHPStorm 中,它实际上既不是静态代码检查,也不是为 PHP 的动态特性提供太多支持)。如果您已经验证它按预期工作,只需在报告中应用“忽略此实例”即可。
-
删除此类警告的“愚蠢”方法之一(由于您的动态使用)将该方法标记为
protected而不是private。 PhpStorm(以及这里的任何其他 PHP IDE)仅使用静态(和接近静态)代码检查(如上所述)无法检测到如此高度动态的使用情况
标签: php phpstorm phpdoc variable-names