Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Serializable w klasie ArrayObject, Jak zaimplementować interfejs Serializable w klasie ArrayObject?
bongdigibonbon
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.06.2007

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


Witam
W jaki sposób zaimplementować metody interfejsu Serializable lub metody __sleep, __wakeup w klasie dziedziczącej po ArrayObject, aby zachować zarówno dane przechowywane w obiekcie danej klasy jak i klasy bazowej.
Przykład:
  1. <?php
  2. class A extends ArrayObject {
  3.        private $_skladowa;
  4.        public function __construct() {
  5.            $this->_skladowa=true;
  6.        }
  7.        public function getSkladowa() { return $this->_skladowa; }
  8.    }
  9.  
  10.    $a=new A();
  11.    $a->append('Jeden');
  12.    $a->append('Dwa');
  13.  
  14.    $b=unserialize(serialize($a));
  15. ?>

W tym przypadku obiekt "b" posiada wartości 'Jeden', 'Dwa', ale składowa "_skladowa" ma wartość null.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Nic się nie zapętla, spokojnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Serializable::serialize() zwraca zserializowane zmienne, który są wtłaczane w zserializowany - ogólny - string obiektu.
Serializable::unserialize($data) dostaje ten string (wyciągnięty z tego ogólnego) jako parametr i musisz sam go sobie rozserializować, wyciagnąć interesujące Ciebie dane i wszystko w obiekcie ustawić.

Odrobinę się to różni od __sleep() i __wakeup()

edit:

Zapomniałem zaznaczyć, że dzięki temu nie musisz wcale używać domyślnego formatu serializowania PHP. Możesz własny np. atrybuty po przecinkach.

Ten post edytował LBO 14.11.2008, 14:44:47
Go to the top of the page
+Quote Post
Sergiusz
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 16.03.2002
Skąd: Łódź

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


Chyba nie chcesz mi powiedziec, ze trzeba serializowac i deserializowac oddzielnie kazde pole/zmeinna w obiekcie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 09:49