Sérialisation des objets
Notions théoriques
La sérialisation est un processus qui nous permet de convertir un objet en une chaîne de caractères, ce qui peut être très utile pour le stockage ou la transmission d'informations.
En PHP, nous utilisons les fonctions serialize()
et unserialize()
pour gérer ce processus :
-
serialize($object)
va transformer l'objet$object
en une chaîne de caractères que nous pouvons ensuite stocker dans un fichier ou une base de données. -
unserialize($string)
va transformer la chaîne$string
(qui a été générée parserialize()
) en retour à sa forme d'objet original.
C'est un moyen efficace de stocker l'état actuel d'un objet pour une utilisation ultérieure.
Exemple pratique
class Guerrier {
public $nom;
public $force;
public function __construct($nom, $force) {
$this->nom = $nom;
$this->force = $force;
}
}
$guerrier1 = new Guerrier("Conan", 100);
// Sérialisation
$guerrier_serialise = serialize($guerrier1);
file_put_contents('guerrier.txt', $guerrier_serialise);
// Désérialisation
$guerrier_recupere = file_get_contents('guerrier.txt');
$guerrier2 = unserialize($guerrier_recupere);
print($guerrier2->nom); // Affiche "Conan"
Dans cet exemple, nous créons un guerrier, le sérialisons et le stockons dans un fichier. Ensuite, nous récupérons ces informations du fichier, le désérialisons et affichons son nom.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Créez une classe Magicien
avec des propriétés nom
et magie
. Créez un mage, sérialisez-le et stockez-le dans un fichier. Récupérez ensuite le mage du fichier, désérialisez-le et affichez ses propriétés.
Voici les étapes détaillées pour réaliser le TP :
-
Création de la classe Magicien : Commencez par créer une nouvelle classe appelée
Magicien
. Cette classe doit avoir deux propriétés publiques :nom
etmagie
. -
Ajout d'un constructeur à la classe Magicien : Ajoutez un constructeur à la classe
Magicien
. Ce constructeur doit prendre deux paramètres ($nom
et$magie
) qui sont utilisés pour initialiser les propriétésnom
etmagie
. -
Création d'une instance de la classe Magicien : Créez une nouvelle instance de la classe
Magicien
, en passant les valeurs appropriées pour lenom
et lamagie
. -
Sérialisation de l'objet Magicien : Utilisez la fonction
serialize()
pour transformer l'objetMagicien
en une chaîne de caractères. -
Stockage de l'objet sérialisé dans un fichier : Utilisez la fonction
file_put_contents()
pour écrire la chaîne sérialisée dans un fichier. Vous pouvez nommer ce fichier "mage.txt". -
Récupération de l'objet sérialisé du fichier : Utilisez la fonction
file_get_contents()
pour lire le contenu du fichier "mage.txt" dans une variable. -
Désérialisation de l'objet Magicien : Utilisez la fonction
unserialize()
pour transformer la chaîne récupérée du fichier en un objetMagicien
. -
Affichage des propriétés de l'objet Magicien : Utilisez l'instruction
print
pour afficher les propriétésnom
etmagie
de l'objet Magicien.
Une solution
Vous devez être connecté pour voir le contenu.