Autocomplete 未知属性的自动完成
是否可以通过PhpStorm自动完成未知属性? 以下是示例代码:Autocomplete 未知属性的自动完成,autocomplete,phpstorm,Autocomplete,Phpstorm,是否可以通过PhpStorm自动完成未知属性? 以下是示例代码: class Fields { public function __construct($data) { foreach ($data AS $d) { $propName=$d['id']; $this->$propName=$d['value']; } } } $data=[ ['id'=>'myId', 'va
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
我希望自动完成'second'或'myId'属性。可能吗
是否可以通过PhpStorm自动完成未知属性
是和否——这取决于你打算如何使用它
如果您希望它是绝对动态的(例如,相同的
字段
类,但在一个文件中$Fields
变量(该字段
类的实例)将有一组字段,而在另一个完全不同的字段中),则答案是否
否则,可以通过该类的PHPDoc注释中的标签()声明不存在的属性
/**
*@property string$abc可选说明
*/
类字段{
...
现在,Fields
的每个实例都将在完成时提供abc
属性
记住这一点,您可以将所有实际的代码/逻辑放在字段中,然后在子类中声明特定字段:
/**
*@property字符串$first
*/
类FirstClassFields扩展字段{
...
}
/**
*@property字符串$second
*/
类SecondClassFields扩展字段{
...
}
是否可以通过PhpStorm自动完成未知属性
是和否——这取决于你打算如何使用它
如果您希望它是绝对动态的(例如,相同的字段
类,但在一个文件中$Fields
变量(该字段
类的实例)将有一组字段,而在另一个完全不同的字段中),则答案是否
否则,可以通过该类的PHPDoc注释中的标签()声明不存在的属性
/**
*@property string$abc可选说明
*/
类字段{
...
现在,Fields
的每个实例都将在完成时提供abc
属性
记住这一点,您可以将所有实际的代码/逻辑放在字段中,然后在子类中声明特定字段:
/**
*@property字符串$first
*/
类FirstClassFields扩展字段{
...
}
/**
*@property字符串$second
*/
类SecondClassFields扩展字段{
...
}
如果您希望它是绝对动态的(例如,相同的字段
类,但在一个文件中,$Fields
变量将有一组字段,而在另一个文件中则完全不同)——则否(除非您每次都有单独的类,请参见下一步)。除此之外,还可以通过该类的PHPDoc注释中的@property
标记()声明不存在的属性,例如/**@property string$abc*/class字段{…
--现在,字段的每个实例
都将有abc
属性处于完成状态感谢您的响应-我尝试了@var-它不起作用。现在它工作得很好。如果您总是以相同的方式定义数组并将其传递给对象,那么答案是肯定的。您可以为完成创建自定义插件。如果您想让它绝对d动态(例如,相同的字段
类,但在一个文件中,$Fields
变量将有一组字段,而在另一个文件中则完全不同)——然后是否(除非每次都有单独的类——请参见下一步)。除此之外,还可以通过@property
标记()在该类的PHPDoc注释中,例如/**@属性字符串$abc*/class字段{…
--现在,字段的每个实例
都将在completion中具有abc
属性感谢您的响应-我尝试了@var-它不起作用。现在它工作得很好。如果您总是以相同的方式定义数组并将其传递给对象,那么答案是肯定的。您可以为完成创建自定义插件。