簡體   English   中英

phpStorm基於參數的代碼補全

[英]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')->為我提供foobar

有沒有一種方法,如何告訴PhpStorm,如果name是一個,那么我就獲得類One

當然-看一下高級元數據支持

請注意,這種元數據僅在PhpStorm v9 (昨天發布)之后才有效,因為 v8僅支持靜態工廠。

例如:

<?php
namespace PHPSTORM_META {
    $STATIC_METHOD_TYPES = [
        \DI::get('') => [
            "foo" instanceof \One,
            "bar" instanceof \Two,
        ]
    ];
}

聚苯乙烯

在您的代碼(里面方法get()使用的是foobar的鍵定義要創建的類..但是實際使用時, DI->get()使用的是類名作為關鍵詞(例如one )。 我敢肯定這只是一個錯字..但仍然-下次嘗試提供有效的代碼作為示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM