Php 对来自不同产品的XML文件进行通用解析
我正在创建一个web应用程序。此应用程序用于电子商务网站的订单履行。现在,电子商务是IBMWebSphere。我首先使用Websphere公开的Web服务从Websphere导入订单,并对其进行解析并将其存储到DB中。现在,他们已经要求推广这种解析方法,以便明天如果他们也使用其他电子商务产品,比如prestashop,它应该能够应付。我需要一些关于如何进行的想法,以及我可以保留哪些东西作为可配置选项,以便将来不会产生问题。查看Php 对来自不同产品的XML文件进行通用解析,php,xml-parsing,Php,Xml Parsing,我正在创建一个web应用程序。此应用程序用于电子商务网站的订单履行。现在,电子商务是IBMWebSphere。我首先使用Websphere公开的Web服务从Websphere导入订单,并对其进行解析并将其存储到DB中。现在,他们已经要求推广这种解析方法,以便明天如果他们也使用其他电子商务产品,比如prestashop,它应该能够应付。我需要一些关于如何进行的想法,以及我可以保留哪些东西作为可配置选项,以便将来不会产生问题。查看设计模式:一种解决方案可以是使用: 创建一个全局“通用”接口。然后为需
设计模式
:一种解决方案可以是使用:
创建一个全局“通用”接口。然后为需要支持的每个电子商务创建一个适配器。例如,现在您将有一个适配器:
public class IBMImportAdapter : IECommerce
{
private IBMECommerce _ibmInstance;
public IBMImportAdapter(IBMECommerce instance) {
_ibmInstance = instance;
}
public IEnumerable<Product> GetInput() {
IEnumerable<IBMProduct> ibmProducts = _ibmInstance.TheirGetInput();
List<Product> products = new List<Product>();
foreach (IBMProduct p in ibmProducts) {
products.Add(new Product(p.ID, p.Name);
}
return products;
}
}
公共类IBMImportAdapter:IECommerce
{
私人IBMECommerce_ibmInstance;
公共IBMImportAdapter(IBMCommerce实例){
_ibmInstance=实例;
}
公共IEnumerable GetInput(){
IEnumerable ibmProducts=_ibminInstance.TheTargetInput();
列表产品=新列表();
foreach(ibmProducts中的IBMProduct p){
产品。添加(新产品(p.ID,p.Name);
}
退货产品;
}
}
然后,这些适配器将自己的接口映射到您的全局/通用接口(在您的情况下,这可能与IBM电子商务接口差不多,但去掉了所有IBM依赖项)
另一种选择是将“导入算法”封装到一个数据库中