Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Doctrine] Serializacja obiektu
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Witam,

Zrobiłem sobie model użytkownika który składa się z dwóch dodatkowych klas. Niestety podczas serializacji nie są one dodawane do łańcucha wynikowego. Czy jest jakaś opcja która umożliwia serializację również obiektów dołączanych czy będę musiał napisać to ręcznie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
XianN
post
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 9
Dołączył: 12.11.2005
Skąd: ze wnowu?!

Ostrzeżenie: (0%)
-----


Ostatnio tez sie na to nadzialem...

Wychodzi na to, ze to jest blad w doctrine. Poniewaz serializacja zapisuje tylko to co fizycznie jest w obiekcie, to nie zlapie tego, co doctrine trzyma sobie gdzies-tam przez __get i __set. Mysle, ze mozna to obejsc dopisujac zapisywanie wartosci tych 2 pol gdzies przez __sleep, a potem przywracanie ich przez __wakeup.

Nie testowane - u nas rozwiazalismy to inaczej (zmiana serializacji na trzymanie w bazie ze stanem 'nieaktywny').
Go to the top of the page
+Quote Post
destroyerr
post
Post #3





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


To nie jest błąd i nie trzeba go obchodzić. Logiczne jest, że obiekt nie załaduje wszystkich swoich relacji żeby się zserializować razem z nimi. Mogłoby dojść do sytuacji, że zostałaby pobrana cała baza. Niczego nie trzeba nadpisywać (a jeśli już to Doctrine_Record::serialize()), wystarczy przed serializacją pobrać do obiektu odpowiednie dane.
Go to the top of the page
+Quote Post
starach
post
Post #4





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Już to obszedłem nadpisując serializacje. Szkoda że nie ma opcji manipulacji serializacją.
Go to the top of the page
+Quote Post
XianN
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 9
Dołączył: 12.11.2005
Skąd: ze wnowu?!

Ostrzeżenie: (0%)
-----


Znalazlem rozwiazanie tego problemu, okazalo sie prostsze niz bym sie spodziewal (IMG:style_emoticons/default/smile.gif)
  1. $obiekt->serializeReferences(true);

Wiecej: serializeRefefences().
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 06:52