5

私は2つのコンポーネントを持つプロジェクトに取り組んでいます:

1)1つは、すべてのカスタムコードを構築するCodeIgniterフレームワークです。

2)もう1つは、MWSAPI用のAmazonのPHPSDKライブラリです。

問題は、私のCodeIgniterコードとAmazonのSDKの両方が独自のautoload()を必要とすることです。

AmazonのSDKもさらに3〜4つのコンポーネントに分割されており、それぞれに独自のオートロード機能があるため、同じセッションでProductsのSDK、次にReports SDKを操作する場合は、すでに定義されているオートロードが発生します。働き。

このため、同じサーバー上にある場合でも、自分のコードとAmazonのSDKファイル間の通信用にWebサービスシステムをセットアップすることを考えていますが、少なくともこの方法で名前の競合を回避できます。つまり、AmazonのSDKを処理するCodeIgniterの外部のファイルにHTTPリクエストを送信し、JSONまたはXMLでレスポンスを返します。

SDKの各ファイル/クラスを調べて名前空間ステートメントを追加したくないので、名前空間はオプションではないと思います。

私の質問は、この方法で知っておくべきパフォーマンスの問題はありますか?そして、このメソッドを回避できる名前空間以外の方法はありますか?

4

1 に答える 1

1

オートローダー関数を別のファイルにコピーし、名前を変更して、次のspl_autoload_registerように接続するだけです。

<?php
function loadFrameworkOne($name) {
    // contents of __autoload from framework one.
}
function loadFrameworkTwo($name) {
    // contents of __autoload from framework two.
}
spl_autoload_register('loadFrameworkOne');
spl_autoload_register('loadFrameworkTwo');

これは素早く、汚く、私の頭のてっぺんから離れています ;)

于 2013-01-14T18:17:09.727 に答える