簡體   English   中英

將Amazon MWS(庫存API)與CodeIgniter(PHP)結合使用

[英]Using Amazon MWS (Inventory API) with CodeIgniter (PHP)

我對使用Amazon MWS api有點熟悉,但是我對CodeIgniter和整個hmvc還是陌生的。 我很好奇如何將API添加到CodeIgniter中。 我需要將整個api分解為適當的mvc文件夾,還是可以將其添加為庫。 如果是后者,我將如何使用api?

很抱歉,如果您不清楚,我將非常感謝您願意提供的任何幫助! 謝謝

我無法說出CodeIgniter特有的內容,但是我已經使用了各種MVC庫,因此可以給出一個概述。 您的選擇是:

I)從頭開始編寫模型

訪問MWS的新代碼通常將最終出現在“模型”空間中。 控制器和視圖(您可能最終將需要)在Amazon提供的代碼范圍之外,因此無論如何都需要編寫它們。 就MVC(和OOP)的想法而言,這是“正確”的做法,您可以充分利用繼承和多態性。

優點:您訪問MWS的模型將遵循MVC框架的規則和准則。 可以很容易地集成到框架的其他部分,並與其余代碼很好地集成。

缺點:要編寫很多代碼(更重要的是,由於MWS是一個不斷發展的目標),因此需要維護。

II)使用Amazon的代碼作為庫

亞馬遜的代碼將進入“庫”空間。 由於它不遵循您的MVC框架的規則,因此它將“感覺”到其余的代碼。

優點:編寫和維護的代碼更少。

缺點:沒有使用框架,沒有代碼重用,沒有繼承,也沒有多態性。

III)寫一個包裝

這基本上是上述兩個選項的組合。 您圍繞該庫編寫了一個非常薄的包裝器(進入模型空間),該包裝器將調用未修改的Amazon庫。 正確編寫后,您可能會獲得“兩全其美”的效果-這取決於庫與所需模型接口匹配的接口數量。

優點:與“庫”方法相比,通常只需要很少的額外代碼,而模型可以與完全重寫相同的方式使用。

缺點:有時需要幾乎與從頭開始編寫一樣多的代碼。

建議和意見

我的方法可能是使用包裝器,除非我只需要一部分庫代碼。 由於PHP沒有嚴格的對象層次結構,因此通常可能需要根據需要適當地模仿繼承。

關於圍繞MWS設計模型的附帶說明:與大多數Web服務不同,對MWS API的某些調用(例如SubmitFeed)異步工作,因為有關操作成功或失敗的信息僅在幾分鍾(甚至幾小時)后可用通話已完成。 大多數MVC模型層次結構和接口都無法很好地處理此類問題,因此完整的重寫可能不會給您帶來通常所能獲得的好處。

請記住,我對CodeIgniter不了解。 你的旅費可能會改變。

我的解決方案專門針對Yii PHP框架,但應針對Codeigniter外部庫自動加載器修改原理:

  1. 將整個Amazon MWS PHP SDK放入您的Vendors文件夾或Extensions文件夾或CI首選的外部庫中。 您可能必須創建該文件夾並在CI中引用它

  2. 然后找出如何使用CI的自動加載器,以便它自動加載上述步驟1中的庫。

  3. 然后,只需從控制器中調用步驟1中的Amazon MWS庫的任何部分即可。

這是快速答復,因此,如果我錯過了某些內容,請告訴我,以便我進行編輯。

有關更深入的討論,請訪問下面,以了解我們如何克服此問題以及用於自動加載器的確切代碼以及其他與Amazon MWS PHP SDK相關的事情

http://www.jescor.com/amazon-price-update-program/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM