用于魔术调用静态方法的PHPStorm代码完成(使用花括号语法)[下垂]

时间:2018-01-30 17:08:04

标签: php ide phpstorm jetbrains-ide

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

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调用方法写样式(Curly braces)?

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

如果是这样,怎么样?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

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

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

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