לדלג לתוכן

2.5 סירלזציה

סיריאליזציה ב-PHP

הקדמה

סיריאליזציה היא תהליך של המרת אובייקטים למחרוזת כך שניתן יהיה לאחסן או להעביר אותם. ב-PHP, ניתן להשתמש ב-serialize() ו-unserialize() כדי להמיר אובייקטים למחרוזות ולהחזיר אותם חזרה לאובייקטים.

דוגמה לשימוש בסיריאליזציה ב-PHP

קוד לדוגמה
class User {
    public $name;
    public $email;

    public function __construct($name, $email) {
        $this->name = $name;
        $this->email = $email;
    }
}

// יצירת אובייקט
$user = new User("Alice", "alice@example.com");

// סיריאליזציה
$serializedUser = serialize($user);
echo "Serialized: " . $serializedUser . "\n";

// שמירת המחרוזת לקובץ
file_put_contents("user.txt", $serializedUser);

// קריאה מהקובץ ושחזור האובייקט
$retrievedUser = unserialize(file_get_contents("user.txt"));
echo "Unserialized: " . $retrievedUser->name . " - " . $retrievedUser->email;
הסבר
  • serialize() ממיר את האובייקט למחרוזת.

  • file_put_contents() שומר את המחרוזת לקובץ.

  • unserialize() מחזיר את המחרוזת לאובייקט פעיל.

כך, בקוד למעלה ידענו לקחת אובייקט נוח שיצרנו עם class- והמרנו אותו למחרוזת כדי לשמור אותו בקובץ ואז ידענו להחזיר אותו לאובייקט.

שימושים נפוצים

  • אחסון אובייקטים בקובץ או במסד נתונים.

  • העברת נתונים בין שרתים.

  • שמירת מצבים של אובייקטים בעוגיות.

דמיינו שנוכל ליצור מחלקה של user settings ולשמור את כל העדפות של המשתמש לגבי איך שנראה האתר ולשמור את המידע בcookie של המשתמש, ובכל פעם שהוא יתחבר לאתר שלנו- נעשה unserialize לcookie שלו ונטען כך את המחלקת user settings שלו.
נשמע נחמד נכון?

סיכום

סיריאליזציה מאפשרת אחסון והעברת אובייקטים בפורמט טקסטואלי. ב-PHP, ניתן להשתמש ב-serialize() ו-unserialize() כדי לנהל נתונים ביעילות.