0

SOAP リクエストを実行する PHP プログラムを作成していて、オブジェクトを返します。このオブジェクトからデータを取得してさまざまな方法で使用する関数を作成する必要がありますが、このオブジェクトのデータに対する SOAP 要求が既に存在する場合、毎回 SOAP 要求を実行する必要はありません。

擬似コードの例:

$price = GetPartPrice("1234");


function GetPartPrice($part_number) {

If Parts_List_Object not found then do SOAP request to get Parts_List_Object. 

}

私が見る問題は、Parts_List_Object が既に存在する場合、どこに、またはどのように格納するかわからないことです。SOAP/JSON リクエストからリクエストされた StdClass オブジェクトをグローバルにするために何かを設定する必要がありますか、それともこれをすべて行うためのより良い方法はありますか? ありがとう!

4

1 に答える 1

0

1 つの方法は、これらのオブジェクトのレジストリを構築して、取得したオブジェクトを格納し、必要なオブジェクトを検索することです。これにより、既にロードしたインスタンスへの参照を簡単に取得できます。非常に基本的な例:

class PartListRegistry {
    private static $list = array();

    // After you do the SOAP request, call this to save a reference to the object
    public static function addPartObject($key, $obj) {
        self::$list[$key] = $obj;
    }

    // Call this to see if the object exists already
    public static function getPartObject($key) {
        if (isset(self::$list[$key])) {
            return self::$list[$key];
        }
        return null;
    }
}

function GetPartPrice($part_number) {
    $part = PartListRegistry::getPartObject($part_number);
    if ($part === null) {
        $part = .... // Do your SOAP request here
        // Save a reference to the object when you're done
        PartListregistry::addPartObject($part_num, $part);
    }
    // Do your stuff with the part ....
}
于 2013-07-09T23:45:31.300 に答える