[英]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.