From 54ef6d95ddb418426a2540cb5fcff06be52976c1 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sat, 16 May 2020 21:24:20 +0200 Subject: [PATCH] 093 Mise en cache des pages --- core/core.php | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/core/core.php b/core/core.php index 641368a4..52afc750 100755 --- a/core/core.php +++ b/core/core.php @@ -133,6 +133,7 @@ class common { public static $timezone; private $url = ''; private $user = []; + private $page = ''; /** * Constructeur commun @@ -171,6 +172,10 @@ class common { if($this->user === []) { $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); } + + // Mise ne cache des pages + $this->page = $this->readPageCache(); + // Construit la liste des pages parents/enfants if($this->hierarchy['all'] === []) { $pages = helper::arrayCollumn($this->getData(['page']), 'position', 'SORT_ASC'); @@ -371,6 +376,23 @@ class common { public function getData($keys = []) { if (count($keys) >= 1) { + // Lecture d'une donnée de page en cache + if ($keys[0] === 'page') { + // Décent dans les niveaux de la variable $data + $data = $this->page; + foreach($keys as $key) { + // Si aucune donnée n'existe retourne null + if(isset($data[$key]) === false) { + return null; + } + // Sinon décent dans les niveaux + else { + $data = $data[$key]; + } + } + // Retourne les données + return $data; + } //Retourne une chaine contenant le dossier à créer $folder = $this->dirData ($keys[0],'fr'); // Constructeur JsonDB @@ -408,6 +430,26 @@ class common { } } + + /** + * Lecture des fichiers de données de page et mise ne cache + * @param @return string données des pages + */ + public function readPageCache() { + // Trois tentatives + for($i = 0; $i < 3; $i++) { + $data =json_decode(file_get_contents(self::DATA_DIR.'fr/page.json'), true); + if($data) { + return($data); + } + elseif($i === 2) { + exit('Unable to read data file.'); + } + // Pause de 10 millisecondes + usleep(10000); + } + } + /* * Dummy function * Compatibilité des modules avec v8 et v9