如何在PhpStorm中为对象定义形状实现自动补全?
在PhpStorm中为json_decode返回的对象定义结构以实现自动补全
要让PhpStorm对json_decode返回的对象提供属性自动补全,你可以用类似数组结构提示的方式,通过docblock为对象指定属性类型和结构:
数组结构提示(已有写法)
先回顾数组的实现方式,通过array{key: type}的格式定义结构后,IDE会自动补全数组键名:
/** * @var array{id: int, price: float} */ $myArray = json_decode($jsonString, true);
输入$myArray['']时,会自动补全id或price选项。
对象结构提示(实现自动补全)
针对json_decode($jsonString, false)返回的对象,直接用object{property: type}或stdClass{property: type}的格式定义docblock即可:
/** * @var object{id: int, price: float} */ $myObject = json_decode($jsonString, false);
或者明确指定为stdClass:
/** * @var stdClass{id: int, price: float} */ $myObject = json_decode($jsonString, false);
配置完成后,输入$myObject->时,PhpStorm会自动弹出id和price的属性补全选项。
这种写法是PhpStorm对PHP docblock的扩展支持,无需定义实体类就能为动态生成的对象提供类型提示和自动补全。
内容的提问来源于stack exchange,提问作者Marek Lisiecki
相关产品推荐
相关产品推荐

