PHP XML производительность и сериализация () - PullRequest
1 голос
/ 21 октября 2011

У меня есть XML-файл, который содержит структуру некоторых объектов.Объект выглядит так:

class Object:
{
  private $name;
  private $info;
  private $$items;
}

Где $ items - массив объектов, поэтому он рекурсивный.На данный момент, когда мне нужно перечислить элементы, я использую simplexml, чтобы перебрать элементы и показать их.Мои вопросы:

1) Если я проанализирую XML и преобразую данные в объект вместо того, чтобы работать с чистым XML, повлияет ли это на общую производительность страниц?Будет ли он слишком сильно тормозить, учитывая, что каждая страница, которую пользователь загружает, ему придется загружать элементы?

2) Хорошая идея - сериализовать () рекурсивный объект, подобный тому, который я определил?

1 Ответ

2 голосов
/ 21 октября 2011

SimpleXML нельзя сериализовать, потому что он считается ресурсом.Тем не менее, вы можете легко получить выходные данные $sx->toXML(); и сериализовать их, воссоздавая SimpleXMLElement (s), как только вы их не сериализовали.если вы не работаете с очень большими деревьями XML.

Что касается вашего объекта, вы также можете реализовать магические методы __sleep() и __wakeup(), которые позволят вам изменить объект до его сериализации исоответственно несериализовано.

При сериализации примера рекурсивного объекта не включайте переменную $$items в магический метод __sleep() и повторно реализуйте ее в __wakeup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...