我一直在尝试为工厂方法设置.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
我在这里做错了吗?