我需要一个建议,什么是最好的方法来连接来自不同来源的API到一些模板/页面,而不是为我连接的每个API复制这些页面?
为了明确我想要什么:例如,我有一些API X
和一些API Y
以及一些模板tpl.php
,我想在其中显示来自这些API的一些数据。假设我想显示从API返回的项的name
属性。在X
接口中,这个属性可以被命名为item_name
,而在Y
中,这个属性可以是name
,甚至可以在另一个路径中。据我所知,为了避免为每个应用程序接口创建成百上千个条件,并为每个应用程序接口创建重复的模板,我必须编写一些类包装器,比方说Z
,在其中我为每个应用程序接口指定属性,并将在我的tpl.php
中作为Z->name
调用。
我搜索了这样的东西,但什么也没有找到。另外,如何调用类似的类包装器并找到一些示例?
发布于 2020-07-20 16:57:30
不一定是最好的解决方案,但应该是这样的。
首先提出一个统一的格式,您将把它放在AppItemInterface
中
创建两个反映Item并遵循相同AppItemInterface
的类。(例如,这意味着它们各自都有getName
和setName
方法)
所以:
class ApiXItem implements AppItemInterface{}
和
class ApiYItem implements AppItemInterface{}
AppItemInterface
应包含方法getInstance($sourceData)
每个Api类都将使用getInstance
实现将正确的值放入ApiXItem
类和ApiYItem
$name
属性。
设置属性后,您可以在接口中添加一个方法toArray
(以及跟随接口的Api类),它将在每个接口中返回统一的格式。在本例中,在两个类中都包含name
键的数组
一旦你有了一个统一的格式,你就可以按照你喜欢的顺序在其中的两个上做像array_merge
这样的事情。
这只是其中一种方法,但应该是一个良好的开始;)
https://stackoverflow.com/questions/62991175
复制相似问题