使用 davidtsadler/ebay-sdk-php 使用 Ebay SDK 遍历 "nodes" 或多级对象
Traversing "nodes" or multi-level objects with Ebay SDK using davidtsadler/ebay-sdk-php
我正在寻找一种解决方案,以便在整个 SDK 中使用 return 来自响应对象的所有键和值。 Ebay SDK中肯定有遍历响应对象的方法PHP(davidtsadler/ebay-sdk-php).
由于每个节点都是一个对象,我猜这是一个'multidimensional object'??
即使在其中,也有数组。看下面的小结构:
我想打印 node/key 名称来构建一个 "select node/section" 工具,然后对来自节点 selected 的值使用循环。这样我就可以 select 完整响应中的任何可用字段来构建我的自定义报告。
我可以处理 UI,但如果不单独键入每个键名,我似乎无法将对象获取到 return keys/values。
foreach 和 implode 只让我到目前为止,然后我还得写名字。
(下面的这个示例只是这个响应节点的一小部分;这里是完整的模型:http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetMyeBaySelling.html)
<!-- Call-specific Input Fields -->
<ActiveList> ItemListCustomizationType
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<ListingType> ListingTypeCodeType </ListingType>
<Pagination> PaginationType
<EntriesPerPage> int </EntriesPerPage>
<PageNumber> int </PageNumber>
</Pagination>
<Sort> ItemSortTypeCodeType </Sort>
</ActiveList>
<BidList> ItemListCustomizationType
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<Pagination> PaginationType
<EntriesPerPage> int </EntriesPerPage>
<PageNumber> int </PageNumber>
</Pagination>
<Sort> ItemSortTypeCodeType </Sort>
</BidList>
<DeletedFromSoldList> ItemListCustomizationType
<DurationInDays> int </DurationInDays>
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<Sort> ItemSortTypeCodeType </Sort>
</DeletedFromSoldList>
<DeletedFromUnsoldList> ItemListCustomizationType
<DurationInDays> int </DurationInDays>
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<Sort> ItemSortTypeCodeType </Sort>
</DeletedFromUnsoldList> ....
有一个 toArray 方法可以在任何 SDK 对象上调用。对象的 属性 名称将成为 returned 的关联数组中的键。每个键的值是对象 属性 的值。如果 属性 的值是另一个对象,则该值可以是另一个关联数组,或者如果该值是值数组,则它可以是常规数组。使用 array_keys 之类的东西可能意味着可以迭代对象的属性。请注意,toArray 只会 return 一个包含具有值的属性的数组。它不会 return 任何空属性。
除了 toArray 之外,没有真正的方法来遍历对象的属性,因为它们是使用 PHP 的魔术 __get 和 __set 方法实现的。可能有使用 PHP's refelection 能力的方法,但这意味着您的代码依赖于 SDK 的私有细节,这些细节可以在不通知的情况下更改或删除。
我正在寻找一种解决方案,以便在整个 SDK 中使用 return 来自响应对象的所有键和值。 Ebay SDK中肯定有遍历响应对象的方法PHP(davidtsadler/ebay-sdk-php).
由于每个节点都是一个对象,我猜这是一个'multidimensional object'?? 即使在其中,也有数组。看下面的小结构:
我想打印 node/key 名称来构建一个 "select node/section" 工具,然后对来自节点 selected 的值使用循环。这样我就可以 select 完整响应中的任何可用字段来构建我的自定义报告。
我可以处理 UI,但如果不单独键入每个键名,我似乎无法将对象获取到 return keys/values。
foreach 和 implode 只让我到目前为止,然后我还得写名字。
(下面的这个示例只是这个响应节点的一小部分;这里是完整的模型:http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetMyeBaySelling.html)
<!-- Call-specific Input Fields -->
<ActiveList> ItemListCustomizationType
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<ListingType> ListingTypeCodeType </ListingType>
<Pagination> PaginationType
<EntriesPerPage> int </EntriesPerPage>
<PageNumber> int </PageNumber>
</Pagination>
<Sort> ItemSortTypeCodeType </Sort>
</ActiveList>
<BidList> ItemListCustomizationType
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<Pagination> PaginationType
<EntriesPerPage> int </EntriesPerPage>
<PageNumber> int </PageNumber>
</Pagination>
<Sort> ItemSortTypeCodeType </Sort>
</BidList>
<DeletedFromSoldList> ItemListCustomizationType
<DurationInDays> int </DurationInDays>
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<Sort> ItemSortTypeCodeType </Sort>
</DeletedFromSoldList>
<DeletedFromUnsoldList> ItemListCustomizationType
<DurationInDays> int </DurationInDays>
<Include> boolean </Include>
<IncludeNotes> boolean </IncludeNotes>
<Sort> ItemSortTypeCodeType </Sort>
</DeletedFromUnsoldList> ....
有一个 toArray 方法可以在任何 SDK 对象上调用。对象的 属性 名称将成为 returned 的关联数组中的键。每个键的值是对象 属性 的值。如果 属性 的值是另一个对象,则该值可以是另一个关联数组,或者如果该值是值数组,则它可以是常规数组。使用 array_keys 之类的东西可能意味着可以迭代对象的属性。请注意,toArray 只会 return 一个包含具有值的属性的数组。它不会 return 任何空属性。
除了 toArray 之外,没有真正的方法来遍历对象的属性,因为它们是使用 PHP 的魔术 __get 和 __set 方法实现的。可能有使用 PHP's refelection 能力的方法,但这意味着您的代码依赖于 SDK 的私有细节,这些细节可以在不通知的情况下更改或删除。