PHP ile kullandığımız nesneleri daha sonra kullanmak üzere veritabanında ya da bir dosyada saklayabiliriz. Text formatında saklanan veriler tekrar deserialize edildiği zaman birer nesneye dönüşürler.

Örnek bir sınıf oluşturalım:
class Calisan{
public $Ad;
public $Soyad;
public $Gorev;

public function __construct($ad, $soyad, $gorev)
{
$this->Ad = $ad;
$this->Soyad = $soyad;
$this->Gorev = $gorev;
}
}


Şimdi bu sınıftan birkaç nesne türetelim:
$isci1 = new Calisan('Sauron', 'The Dark Lord', 'Founder');
$isci2 = new Calisan('Gollum', 'Yüzükoğlu', 'CEO');
$isci3 = new Calisan('Frodo', 'Baggins', 'Yüzük Taşıyıcısı')


Serialize (Serileştirme)



Nesneleri serialize etmek için önce bir dizinin içine atmamız ve ardından “serialize” fonksiyonundan geçirmemiz gerekecek. Hemen sonra da saklamak üzere bir dosyaya yazdıracağız.
$kadro = array($isci1, $isci2, $isci3);

$kaydedilecekVeri = serialize($kadro);
file_put_contents('dosyaAdi.dat', $kaydedilecekVeri);


Dosyaya veri yazmak için file_put_contents fonksiyonunu kullandık.

Deserialize (Geri getirme)



Şimdi de dosyaya yazdığımız nesneleri “unserialize” fonksiyonu ile deserialize ediyoruz ve kaydettiğimiz gibi dizi biçiminde tekrar elde ediyoruz:
$kadro = unserialize(file_get_contents('dosyaAdi.dat'));

// kaydedilen nesneleri, tıpkı kaydettiğimiz şekilde alıyoruz; dizi olarak
foreach($kadro as $isci){
echo $isci->Ad.' '.$isci->Soyad.' '.$isci->Gorev.'
';
}


Daha önce kaydettiğimiz veriyi geri okumak için file_get_contents fonksiyonunu kullandık.

Tabi ki, eğer sadece bir tane nesne kaydettiyseni geri getirmenin daha kolay bir yolu var:
$isci = unserialize(file_get_contents('dosyaAdi.dat'));

echo $isci->Ad.' '.$isci->Soyad.' '.$isci->Gorev.'
';


İşte bu kadar. Eğer dosya kullanmak istemiyorsanız dosyaya kaydettiğimiz veriyi MySQL veritabanına da kaydedebilisiniz.

Kaynak: PHP | Serialization / Deserialization İşlemleri