自动完成未知属性

时间:2016-09-06 09:30:43

标签: autocomplete phpstorm

PhpStorm是否可以自动完成未知属性? 以下是示例代码:

class Fields {
    public function __construct($data) {
        foreach ($data AS $d) {
            $propName=$d['id'];
            $this->$propName=$d['value'];
        }
    }
}

$data=[
    ['id'=>'myId', 'value'=>'Name'],
    ['id'=>'second', 'value'=>'Second]
];

$fields=new Fields($data);

$fields->second;//comes from autocpmplete

我想要第二个'或者' myId'要自动填充的财产。有可能吗?

1 个答案:

答案 0 :(得分:2)

  

PhpStorm是否可以自动填充未知属性?

是和否 - 这取决于您打算如何使用它。

如果你想让它绝对动态(例如同一个Fields类但在一个文件中$fields变量(那个Fields类的实例)将有一组字段并且在另一个完全不同的 - 然后回答是否。

否则,可以通过该类的PHPDoc评论中的 @property 标记(see detailed link)声明不存在的属性。

/**
 * @property string $abc Optional description here
 */
class Fields {
...

现在Fields的每个实例都会在完成时提供abc属性。

考虑到这一点,你可以在Fields类中拥有所有实际的代码/逻辑,然后在子类中声明特定的字段:

/**
 * @property string $first
 */
class FirstClassFields extends Fields {
...
}

/**
 * @property string $second
 */
class SecondClassFields extends Fields {
...
}