powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сериализация несериализцемого объекта
13 сообщений из 13, страница 1 из 1
Сериализация несериализцемого объекта
    #38758626
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется некоторый объект, который не является сериализуемым: не имеет методов __sleep() и __wakeup() и не реализует интерфейс Serializable.

Как ещё можно "запомнить" состояние этого объекта для его последующего быстрого восстановления ?
Может быть, можно поколдовать с памятью, занимаемой этим объектом ?
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38758635
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02,

serialize() чем неустраивает?
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38758754
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторserialize() чем неустраивает? Он не справляется с НЕсереализуемыми объектами:
Имеется некоторый объект, который не является сериализуемым : не имеет методов __sleep() и __wakeup() и не реализует интерфейс Serializable.
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38758834
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02, ну можно на var_export посмотреть... Только __set_state() у объекта наверное тоже нет...
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38758840
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через рефлекшены можно.
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38759121
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реализовать интерфейс?
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38759186
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02Как ещё можно "запомнить" состояние этого объекта для его последующего быстрого восстановления ?


Memento pattern?
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38759606
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторну можно на var_export посмотреть... Только __set_state() у объекта наверное тоже нет...
__set_state()'а у объекта нет.

авторчерез рефлекшены можно.
Что именно можно через reflection ?
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38759607
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРеализовать интерфейс?
Нет. Требуется запомнить состояние объекта для его последующего быстрого восстановления.
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38759608
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторMemento pattern?
Именно. Как его реализовать в отношении несериализуемого объекта без методов типа setState/getState ?
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38764250
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02Имеется некоторый объект, который не является сериализуемым: не имеет методов __sleep() и __wakeup() и не реализует интерфейс Serializable.
привидите пример такого объекта, который у вас несереализуется. чтоб можно было потыкать его палкой, предметно.
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38764272
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще поддержу ScareCrow

что мешает вручную сделать сериализацию с помощью ReflectionClass?
например:
получаем свойства getProperties()
пробегаемся по ним
получаем значения и сохраняем
...
Рейтинг: 0 / 0
Сериализация несериализцемого объекта
    #38765356
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора вообще поддержу ScareCrow

что мешает вручную сделать сериализацию с помощью ReflectionClass?
например:
получаем свойства getProperties()
пробегаемся по ним
получаем значения и сохраняем
Да именно так я и реализовал задачу - через reflection'ы:
http://habrahabr.ru/post/138102/
https://sebastian-bergmann.de/archives/831-Freezing-and-Thawing-PHP-Objects.html

Вообще есть 2 решения задачи без изменения кода исходного объекта:
1. Через reflection'ы (позволяют получать доступ даже к защищённым/закрытым полям объекта).
2. Наследуем объект, вручную изнутри объекта-наследника получаем доступ к полям и сериализуем их. Вариант нереализуем, если исходный объект имеет закрытые поля, которые также должны быть сериализованы.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сериализация несериализцемого объекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]