[英]PhpStorm code completion based on parameters
我想知道,是否有可能根据传递给方法的参数来完成代码。
例:
class One { public function foo(){} }
class Two { public function bar(){} }
class DI {
public function get($name) {
if ($name === 'foo') {
return new One();
} elseif ($name === 'bar') {
return new Two();
}
}
}
(new DI())->get('one')->
为我提供foo和bar
有没有一种方法,如何告诉PhpStorm,如果name是一个,那么我就获得类One
?
当然-看一下高级元数据支持 。
请注意,这种元数据仅在PhpStorm v9 (昨天发布)之后才有效,因为 v8仅支持静态工厂。
例如:
<?php
namespace PHPSTORM_META {
$STATIC_METHOD_TYPES = [
\DI::get('') => [
"foo" instanceof \One,
"bar" instanceof \Two,
]
];
}
聚苯乙烯
在您的代码(里面方法get()
使用的是foo
和bar
的键定义要创建的类..但是实际使用时, DI->get()
使用的是类名作为关键词(例如one
)。 我敢肯定这只是一个错字..但仍然-下次尝试提供有效的代码作为示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.