使用Amazon MWS(库存API)和CodeIgniter(PHP)

使用Amazon MWS(库存API)和CodeIgniter(PHP),php,api,codeigniter,amazon-web-services,amazon-mws,Php,Api,Codeigniter,Amazon Web Services,Amazon Mws,我对AmazonMWSAPI的使用有些熟悉,但我对CodeIgniter和整个hmvc都是新手。我很好奇如何将api添加到CodeIgniter中。我是否必须将整个api分解到适当的mvc文件夹中,或者只是将其作为库添加。如果是后者,我将如何使用api 我很抱歉,如果这是含糊不清的,但我将非常感谢任何帮助你愿意提供!谢谢我不能说CodeIgniter特有的东西,但我已经使用过各种MVC库,所以我可以给出一个总体概述。你的选择是: I)从头开始编写模型 访问MWS的新代码将主要在“模型”空间中结束

我对AmazonMWSAPI的使用有些熟悉,但我对CodeIgniter和整个hmvc都是新手。我很好奇如何将api添加到CodeIgniter中。我是否必须将整个api分解到适当的mvc文件夹中,或者只是将其作为库添加。如果是后者,我将如何使用api


我很抱歉,如果这是含糊不清的,但我将非常感谢任何帮助你愿意提供!谢谢

我不能说CodeIgniter特有的东西,但我已经使用过各种MVC库,所以我可以给出一个总体概述。你的选择是:

I)从头开始编写模型

访问MWS的新代码将主要在“模型”空间中结束。控制器和视图(您可能最终需要)不在Amazon提供的代码范围内,因此无论如何都需要编写它们。就MVC(和OOP)思想而言,这是一种“正确”的方法,您可以充分利用继承和多态性

优点:访问MWS的模型将遵循MVC框架的规则和指南。它将很容易集成到框架的其他部分,并与代码的其余部分很好地集成

缺点:需要编写和维护大量代码(更重要的是,因为MWS是一个移动的目标)

II)使用亚马逊的代码作为库

亚马逊的代码将进入“库”空间。因为它不遵循MVC框架的规则,所以它对代码的其余部分“感觉”陌生

优点:编写和维护的代码更少

缺点:没有使用框架,没有代码重用,没有继承和多态性

III)编写一个包装

这基本上是上述两个选项的混合。您可以在库(进入模型空间)周围编写一个非常薄的包装器,它调用未修改的Amazon库。如果编写得当,您可能会得到“两全其美”——这取决于库中的接口与所需模型接口的匹配程度

优点:与“库”方法相比,通常只需要很少的额外代码,而模型的使用方式与完全重写相同

缺点:有时需要的代码几乎与从头开始编写代码一样多

建议和评论

我的方法可能是使用包装器,除非我只需要库代码的一小部分。因为PHP没有严格的对象层次结构,所以如果需要的话,通常可以正确地模拟继承

关于围绕MWS设计模型的旁注:与大多数web服务不同,一些对MWS API的调用(例如SubmitFeed)是异步工作的,因为关于操作成功或失败的信息只在几分钟(甚至几小时)内可用大多数MVC模型层次结构和接口的设计都不能很好地处理这类事情,因此完全重写可能不会给您带来通常所能获得的好处


请记住,我对CodeIgniter一无所知。您的里程数可能会有所不同。

我不能说CodeIgniter的具体情况,但我使用过各种MVC库,因此我可以提供一个总体概述。您的选项有:

I)从头开始编写模型

访问MWS的新代码大多会在“模型”空间中结束。控制器和视图(您可能最终需要)不在Amazon提供的代码范围内,因此无论如何都需要编写它们。就MVC(和OOP)思想而言,这是“正确的”“要做到这一点,您可以充分利用继承和多态性

优点:访问MWS的模型将遵循MVC框架的规则和指南。它将很容易集成到框架的其他部分,并与代码的其余部分很好地集成

缺点:需要编写和维护大量代码(更重要的是,因为MWS是一个移动的目标)

II)使用亚马逊的代码作为库

亚马逊的代码将进入“库”空间。因为它不遵循MVC框架的规则,所以它对代码的其余部分“感觉”陌生

优点:编写和维护的代码更少

缺点:没有使用框架,没有代码重用,没有继承和多态性

III)编写一个包装

这基本上是上述两个选项的混合。您可以在库(进入模型空间)周围编写一个非常薄的包装器,它调用未修改的Amazon库。如果编写得当,您可能会得到“两全其美”——这取决于库中的接口与所需模型接口的匹配程度

优点:与“库”方法相比,通常只需要很少的额外代码,而模型的使用方式与完全重写相同

缺点:有时需要的代码几乎与从头开始编写代码一样多

建议和评论

我的方法可能是使用包装器,除非我只需要库代码的一小部分。因为PHP没有严格的对象层次结构,所以如果需要的话,通常可以正确地模拟继承

关于围绕MWS设计模型的旁注:与大多数web服务不同,一些对MWS API的调用(例如SubmitFeed)是异步工作的,因为关于操作成功或失败的信息只在几分钟(甚至几小时)内可用大多数MVC模型层次结构和接口的设计都不能很好地处理这类事情,因此完全重写可能不会给您带来通常所能获得的好处


请记住,我对CodeIgniter一无所知。您的里程可能会有所不同。

我的解决方案专门针对Yii PHP框架,但