Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка при сериализации объекта
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Ошибка при сериализации объекта

Страниц (1): [1]
 

1. Sanek_OS9 - 15 Января, 2017 - 20:12:00 - перейти к сообщению
Добрый вечер, у меня проблема при сериализации файлов на сайте, логика скрипта проста, если файлов много, их нужно поместить в кеш, для этого объекты файлов нужно сериализовать и поместить строку в кеш, но выдает ошибку:
Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in W:\domains\dcmsbest.ru\sys\plugins\classes\cache.class.php:51 Stack trace: #0 [internal function]: PDO->__sleep() #1 W:\domains\dcmsbest.ru\sys\plugins\classes\cache.class.php(51): serialize(Array) #2 [internal function]: cache_file->__destruct() #3 {main} thrown in W:\domains\dcmsbest.ru\sys\plugins\classes\cache.class.php on line 51
что в переводе:
Uncaught исключение 'PDOException' с сообщением 'Вы не можете сериализации или десериализации экземпляры PDO'
Почему я не могу серализовать объект?
(Добавление)
Часть структуры объекта:
Спойлер (Отобразить)
2. Мелкий - 15 Января, 2017 - 20:31:20 - перейти к сообщению
Потому что объекты PDO сериализовать нельзя.
3. Sanek_OS9 - 15 Января, 2017 - 20:34:51 - перейти к сообщению
Мелкий пишет:
Потому что объекты PDO сериализовать нельзя.

Можете что то посоветовать как быть в такой ситуации?
(Добавление)
А что по поводу этой документации тогда http://php.net/manual/ru/languag...erialization.php
4. Мелкий - 15 Января, 2017 - 20:43:59 - перейти к сообщению
Реализовать интерфейс Serializable или магические методы __sleep() и __wakeup(). При реализации не пытаться сериализовать PDO, соответственно.
5. Sanek_OS9 - 15 Января, 2017 - 22:03:50 - перейти к сообщению
Мелкий пишет:
Реализовать интерфейс Serializable или магические методы __sleep() и __wakeup(). При реализации не пытаться сериализовать PDO, соответственно.

Решил проблему, не стал сериализовывать PDO.
Создает кеш, он сейчас 25мб весит, это как, пойдет?)
6. Мелкий - 15 Января, 2017 - 22:22:10 - перейти к сообщению
Не понял вопроса. Хоть 250гб, лишь бы кэш был действительно дешевле получения исходных данных и экономил ресурсы. Что требует хорошего мониторинга и внятно продуманной стратегии кэширования.

 

Powered by ExBB FM 1.0 RC1