bonjour à tous,

Bon, j'ai un soucis avec la serialisation d 'objet avec php5. J'ai lu pas mal de docs là-dessus sans réponse...appropriée.
Voici la classe simplifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
session_start();
class test_serialize {
	private $nom;
	public $prenom;
	private $objConnex;
 
	function __construct($typeConn="mysql") {
		//$this->objConnex = new PDO($typeConn.':host=localhost;dbname=bdd','root','');
	}
 
	function getNom() {
		echo $this->nom ;
	}
 
	function SetNom($leNom) {
		$this->nom = $leNom;
	}
 
	function getProduct() {
		return array ("premier", "dernier");
	}
 
	function __sleep() {
		return array_keys(get_object_vars($this));
	}
}
 
$objTest = new test_serialize();
 
$objTest->prenom = "Fabrice";
$objTest->SetNom("Dupont ");
$objTest->getNom();
echo " " .$objTest->prenom ."<br><br>";
var_dump($objTest->getProduct());
 
// ///////////////////////////////////////////////////////////////// //
 
echo "<br><br>Objet Serialisé : ";
$_SESSION['obj'] = serialize($objTest);
 
$objTestSerialized = new test_serialize();
$objTestSerialized = unserialize($_SESSION['obj']);
 
$objTestSerialized->getNom();
echo " " .$objTestSerialized->prenom ;
echo "<br><br>";
var_dump($objTestSerialized->getProduct());
 
 
?>
Ce code marche nickel même si je met en commentaire la ligne :$objTestSerialized = new test_serialize(); alors que, normalement, je devrais la mettre dans le code... deja, je comprends pas !

Ensuite, si j'enlève le commentaire de : //$this->objConnex = new PDO($typeConn.':host=localhost;dbname=bdd','root',''); dans le constructeur, j'ai cette erreur :
Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in G:\www\tests_scripts\test_serialize.php:42 Stack trace: #0 G:\www\tests_scripts\test_serialize.php(42): PDO->__sleep() #1 {main} thrown in G:\www\tests_scripts\test_serialize.php on line 42
La variable en public ne change rien.
Donc, ma question est : comment puis-je passer un objet PDO en le sérialisant ?

Merci à tous,
Fabrice