#zend-framework #doctrine #doctrine-orm #mamp
#zend-framework #доктрина #doctrine-orm #mamp
Вопрос:
У меня есть небольшое приложение для себя на моем компьютере с Windows, которое я хочу установить на свой Mac на работе.
Оба являются php5.3.2 (доктрина, использующая arraycache). На Mac через терминал я обновил схему, очистил кэш и восстановил прокси.
Но это выдает мне эти уведомления об ошибках:
Notice: Unknown: "id" returned as member variable from __sleep() but does not exist in Unknown on line 0
( ! ) Notice: Unknown: "created" returned as member variable from __sleep() but does not exist in Unknown on line 0
( ! ) Notice: Unknown: "modified" returned as member variable from __sleep() but does not exist in Unknown on line 0
( ! ) Notice: Unknown: "name" returned as member variable from __sleep() but does not exist in Unknown on line 0
И так далее для каждого члена объекта, на мой взгляд. Я нашел это уведомление о сне очень незнакомым … Есть какие-нибудь подсказки относительно того, почему это происходит?
Ответ №1:
Ваша сущность сериализуется. Если вы сохраняете его в сеансе, это происходит прозрачно, в противном случае это может быть где-то в вашем коде. Смотрите документацию о сериализации объектов Doctrine 2 и некоторых подводных камнях:http://www.doctrine-project.org/docs/orm/2.0/en/reference/architecture.html#serializing-entities
Вам нужно было бы опубликовать некоторый код, чтобы увидеть, где или почему это происходит, но основной причиной является сериализация.
Комментарии:
1. Я не смог точно определить проблему, но ваше право, это были мои прокси.
Ответ №2:
Проверяет, защищены ли переменные, а не являются ли они частными в классе сущностей
Комментарии:
1. Проверьте также, имеют ли атрибуты сериализованного класса ссылку на экземпляр, имеющий собственные атрибуты private. Чтобы избежать нежелательной сериализации атрибутов, реализуйте __sleep(): php.net/manual/en/oop4.magic-functions.php