Ö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