如何在界面中注释此stdClass属性?

问题描述

我正在处理提供具有以下结构数据的API:

stdClass Object
(
    [id] => 2592
    [title] => Ακουστικά Bluetooth με Θήκη Φόρτισης SPM BN22-7S
    [features] => stdClass Object
        (
            [675] => stdClass Object
                (
                    [feature_name] => Τύπος Ακουστικών
                    [feature_value_sel] => Earphones
                    [feature_id] => 675
                    [variant_id] => 1809
                )

            [676] => stdClass Object
                (
                    [feature_name] => Σύνδεση
                    [feature_value_sel] => Ασύρματα
                    [feature_id] => 676
                    [variant_id] => 1811
                )

            [162] => stdClass Object
                (
                    [feature_name] => Χρώμα
                    [feature_value_sel] => Λευκό
                    [feature_id] => 162
                    [variant_id] => 1695
                )

            [27] => stdClass Object
                (
                    [feature_name] => Μάρκα
                    [feature_value_sel] => General
                    [feature_id] => 27
                    [variant_id] => 2864
                )

        )

)

然后我将基于该对象创建一个接口MyInterface,以便我可以通过自动完成功能轻松地注释和处理对象,并确保我不会错过任何内容。

例如,我可以在界面中注释它具有这样的属性

* @property string $title

随后,当我处理数据时,只要声明变量的类型为MyInterface,就可以自动补全并输入提示

/** @var MyInterface **/

我的问题是如何处理$features属性,该属性是stdClass的实例而不是数组,但也是相同类型的对象的集合。您可以看到它包含id作为属性,然后包含另一个stdClass对象。

我最初的想法是为Feature对象创建一个接口,然后将该属性标记为

@property FeatureInterface[] $features

但是在调试它之后,我注意到结构类似于上面,而不是数组。我仍然可以通过foreach循环对其进行迭代。

是否可以在该用例中使用注释?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...