Десериализация объекта возврата API (API PHP / Ebay) - PullRequest
1 голос
/ 01 июня 2010

Я работал с Ebay api для проекта и нашел его великолепным.Однако теперь я обнаружил проблему, связанную с PHP.

Когда я читаю свои предметы из Ebay, я сохраняю кучу деталей в базе данных.В настоящее время, просто ради этого, я сериализирую весь возвращаемый объект и сохраняю его в базе данных в связанной таблице.

Идея в том, что когда я отображаю свою информацию, у меня есть все детали дляруки мне нужны.Проблема возникает в том, что информация о ценах всегда находится в подобъекте.

[ConvertedAdjustmentAmount] => __PHP_Incomplete_Class Object
    (
        [__PHP_Incomplete_Class_Name] => eBayAmountType
        [_] => 0
        [currencyID] => USD
    )

Как вы можете видеть, когда я не сериализую свой объект, мой хитрый план противоречит проблеме неполного класса.Я проверил следующий вопрос, но безуспешно.

принудительный доступ к свойствам объекта __PHP_Incomplete_Class

Насколько я понимаю, главная проблема заключается в том, что ценакласс хранится в API Ebay, так как мне его воссоздать?

Я читал эту страницу, http://uk3.php.net/manual/en/function.unserialize.php и пытался выяснить, unserialize_callback_func, что я не могу понятьлибо, так что любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 01 июня 2010

Если у вас нет доступа к библиотекам, вам нужно разобраться с информацией до сериализации ваших данных.Вы можете преобразовать свой объект в класс stdClass или перетасовать его в класс по вашему выбору (предположительно, под вашим контролем).В зависимости от того, какой объем информации у вас есть - или насколько глубока эта информация - вы также можете сохранить ее в виде массива.

0 голосов
/ 01 июня 2010

Какая часть кода определяет класс не имеет значения. Важно то, что код будет загружен во время десериализации объекта. Если вы загрузили eBay API (так же, как при извлечении нового объекта), прежде чем пытаться десериализовать существующий, он должен работать нормально.

...