用于魔术调用静态方法的 PHPStorm 代码补全(使用大括号语法)[Pendent]



使用以下代码,代码完成工作正常!

class FooClass
{
    public function run(){}
}
/**
 * @method static FooClass foo(bool $param1 = false)
 */
class Test
{
    public static function __callStatic($name, $arguments)
    {
        //Implementation code ..
    }
}
//Code completes fine for FooClass methods ..
Test::foo()->run();

但是,IDE(PhpStorm(可以使用以下php调用方法编写样式(大括号(来完成代码吗?

//Code NOT completes fine ..
Test::{"foo"}();

如果是这样,如何?感谢您的帮助!

PhpStorm 不支持动态字段/方法。对于静态工具,很难跟踪实际访问的字段/方法。让我们看一个更现实的例子。

function foo($str) {
    //Code NOT completes fine ..
    Test::{$str}()->run();
}

这就是动态调用通常的样子。在实际代码中,$str通常是外部输入(例如来自数据库(和业务逻辑的组合。两者都超出了静态分析的可能性。

最新更新