PHP-сериализация с несериализуемыми частями - PullRequest
3 голосов
/ 15 июня 2009

У меня есть класс PHP, который хранит результаты запросов к базе данных, но также содержит объект PDO, так что результаты могут быть обновлены / повторно вставлены / и т.д. на лету. Временная ORM, если хотите.

Проблема в том, что мне нужно сериализовать этот класс, но экземпляры PDO не могут быть сериализованы. Я в порядке с этим; к тому моменту, когда объект сериализуется, мне не нужен экземпляр PDO.

Есть ли способ пометить переменную для исключения из сериализации внутри класса, как в некоторых других языках? Я понимаю, что мог бы вручную сбросить () переменную PDO, прежде чем я захочу сериализовать класс, но с текущей структурой кода это было бы кошмаром.

Моя спасительная льгота здесь - это метод __serialize (), который может быть переопределен, но ничего подобного не существует.

1 Ответ

6 голосов
/ 15 июня 2009

Есть __ sleep () и __wakeup () .

В качестве альтернативы вы можете реализовать Сериализуемый .

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