我正在研究一個包含兩個組件的項目:在同一臺服務器上的兩個PHP應用程序之間的通信?
1)一個是CodeIgniter框架,我將在其中構建所有自定義代碼。
2)另一個是亞馬遜的MWS API的PHP SDK庫。
問題是,我的CodeIgniter代碼和Amazon的SDK都需要自己的自動加載()。
亞馬遜的SDK也進一步拆分爲3-4個組件,每個組件都有自己的自動加載功能,所以如果你想使用產品的SDK,然後在同一個會話中使用報告SDK,你會遇到已經定義的自動加載功能。
因爲這個原因,我正在考慮建立一個Web服務系統,用於我自己的代碼和Amazon的SDK文件之間的通信,即使它們在同一臺服務器上,但至少這樣的命名衝突可以避免。 I.e我會發送一個HTTP請求到CodeIgniter之外的文件,它將處理Amazon的SDK,並以JSON或XML返回響應。
我不認爲命名空間是一個選項,因爲我不想瀏覽SDK中的每個文件/類並添加命名空間語句。
我的問題是,是否有任何性能問題,我應該知道這種方法?除了命名空間之外,還有什麼辦法可以避免這種方法?
我有一種印象是,如果圖書館使用SPL自動加載機,那麼幾個可以共存。他們都真的使用傳統的'__autoload()'功能嗎?我應該認爲,如果兩個亞馬遜套件因爲這個原因不能很好地協同工作,那麼有人會把它作爲一個bug /改進票據提出來。 – halfer
@halfer我已經下載了最新的SDKS和yep,他們確實使用了遺留的'__autoload' –
有多奇你不能一起使用幾個!那麼,如果一個已經不存在的話,我會爲此提出一張票。另一種方法:是否可以不加載亞馬遜和CI的自動加載器,並編寫自己的代碼將它們粘合在一起? – halfer