繁体   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