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

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

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


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

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

что мешает вручную сделать сериализацию с помощью ReflectionClass?
например:
получаем свойства getProperties()
пробегаемся по ним
получаем значения и сохраняем
...
Рейтинг: 0 / 0
02.10.2014, 19:51
    #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
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сериализация несериализцемого объекта / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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