PhpStorm meta和多个工厂参数

时间:2017-11-30 08:39:54

标签: php phpstorm

我一直在尝试为工厂方法设置.phpstorm.meta.php文件,但我无法让它完全正常工作。它适用于只接受1个参数的工厂方法,但如果有2个或更多参数,则它不起作用。

基本上,所有需要多于1个参数的工厂方法都会受到影响,尤其是splat参数,即factory(string $className, ...$ctorArgs)

以下是我的元文件示例;

<?php
namespace PHPSTORM_META {
    override(
        \ContainerInterface::make(0),
        map([
            '' => '@',
        ])
    );
}

这是签名;

<?php
interface ContainerInterface{
    /* @return mixed */
    public function make (string $className, ...$ctorArgs);
}

这是预期/结果的一个例子;

<?php
$container->make(MyClass::class, "hello", "world")-> // Nothing is indicated here, should indicate MyClass props/methods

我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

这显然是一个已知的错误; https://youtrack.jetbrains.com/issue/WI-38403