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() כדי לנהל נתונים ביעילות.