serialize
This commit is contained in:
parent
ee76bbfc61
commit
40be9eeee1
44
Grille.php
44
Grille.php
@ -25,11 +25,11 @@ class Grille implements ArrayAccess
|
|||||||
public $grille;
|
public $grille;
|
||||||
public $hauteur;
|
public $hauteur;
|
||||||
public $largeur;
|
public $largeur;
|
||||||
public $dico;
|
private $dico;
|
||||||
private $positions;
|
private $positions;
|
||||||
private $nb_positions;
|
private $nb_positions;
|
||||||
public $lignes = [];
|
private $lignes = [];
|
||||||
public $colonnes = [];
|
private $colonnes = [];
|
||||||
public $valide = false;
|
public $valide = false;
|
||||||
public $definitions = [];
|
public $definitions = [];
|
||||||
|
|
||||||
@ -38,13 +38,6 @@ class Grille implements ArrayAccess
|
|||||||
$this->hauteur = $hauteur;
|
$this->hauteur = $hauteur;
|
||||||
$this->largeur = $largeur;
|
$this->largeur = $largeur;
|
||||||
$this->grille = array_fill(0, $hauteur, array_fill(0, $largeur, ''));
|
$this->grille = array_fill(0, $hauteur, array_fill(0, $largeur, ''));
|
||||||
|
|
||||||
$this->positions = [];
|
|
||||||
for ($y = 0; $y < $hauteur; $y++) {
|
|
||||||
for ($x = 0; $x < $largeur; $x++)
|
|
||||||
$this->positions[] = [$x, $y];
|
|
||||||
}
|
|
||||||
$this->nb_positions = count($this->positions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_ligne($y, $largeur)
|
public function get_ligne($y, $largeur)
|
||||||
@ -67,7 +60,18 @@ class Grille implements ArrayAccess
|
|||||||
{
|
{
|
||||||
mt_srand(crc32($id));
|
mt_srand(crc32($id));
|
||||||
|
|
||||||
if (!isset($this->dico)) $this->dico = mots_espaces(max($this->hauteur, $this->largeur));
|
if (!isset($this->dico)) {
|
||||||
|
$this->dico = mots_espaces(max($this->hauteur, $this->largeur));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($this->positions)) {
|
||||||
|
$this->positions = [];
|
||||||
|
for ($y = 0; $y < $hauteur; $y++) {
|
||||||
|
for ($x = 0; $x < $largeur; $x++)
|
||||||
|
$this->positions[] = [$x, $y];
|
||||||
|
}
|
||||||
|
$this->nb_positions = count($this->positions);
|
||||||
|
}
|
||||||
|
|
||||||
$grilles = $this->gen_grilles();
|
$grilles = $this->gen_grilles();
|
||||||
$grilles->current();
|
$grilles->current();
|
||||||
@ -194,6 +198,18 @@ class Grille implements ArrayAccess
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __serialize(): array {
|
||||||
|
return [
|
||||||
|
"grille" => $this->grille,
|
||||||
|
"definitions" => $this->definitions
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __unserialize(array $data): void {
|
||||||
|
$this->grille = $data["grille"];
|
||||||
|
$this->definitions = $data["definitions"];
|
||||||
|
}
|
||||||
|
|
||||||
public function save($id)
|
public function save($id)
|
||||||
{
|
{
|
||||||
if (session_status() === PHP_SESSION_ACTIVE) {
|
if (session_status() === PHP_SESSION_ACTIVE) {
|
||||||
@ -203,8 +219,7 @@ class Grille implements ArrayAccess
|
|||||||
session_id("$this->largeur,$this->hauteur,$id");
|
session_id("$this->largeur,$this->hauteur,$id");
|
||||||
session_start(["use_cookies" => false]);
|
session_start(["use_cookies" => false]);
|
||||||
|
|
||||||
$_SESSION["grille"] = $this->grille;
|
$_SESSION = serialize($this);
|
||||||
$_SESSION["definitions"] = $this->definitions;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function load($id)
|
public function load($id)
|
||||||
@ -216,8 +231,7 @@ class Grille implements ArrayAccess
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->grille = $_SESSION["grille"];
|
unserialize($_SESSION);
|
||||||
$this->definitions = $_SESSION["definitions"];
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user