From 46591fffb0226b0fa87e68248b06182389825f80 Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 27 May 2024 21:34:05 +0200 Subject: =?UTF-8?q?typeToClient()=20modifie=20$Client=20et=20ne=20touche?= =?UTF-8?q?=20la=20base=20que=20si=20n=C3=A9cessaire,=20nettoyage=20divers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/model/Model.php | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'src/model/Model.php') diff --git a/src/model/Model.php b/src/model/Model.php index 6c799c3..1fdab7d 100644 --- a/src/model/Model.php +++ b/src/model/Model.php @@ -5,13 +5,9 @@ abstract class Model extends DB { protected $db; // instance de PDO protected $table; // <= enfant - //static protected $tableStructure; - //~ public function __construct() // à surcharger - //~ { - //~ $this->table = strtolower(__CLASS__); - //~ echo "TABLE = " . $this->table . "\n"; - //~ } + //~ protected function __construct() // pour appel avec parent::__construct() + //~ {} // getters public function getTable(): string @@ -281,25 +277,28 @@ abstract class Model extends DB } - // fonction appelée une seule fois au lancement du programme - // le tableau nécessaire n'est pas copié en mémoire à l'instanciation (pas de fuite de mémoire), mais uniquement à l'appel de cette fonction statique, à la fin de la fonction la mémoire est libérée - // DBStructure::${self::$tableStructure} permet de nommer une variable statique de classe static public function createTables() { - foreach(StructTablesDB::$structureOfTables as $tableName => $oneTable) + static $first_time = true; + + if($first_time) // fonction normallement appelée qu'une seule fois { - //var_dump(StructTablesDB::${self::$tableStructure}); => propriété statique de classe dans une variable - $fields_and_types = []; - $query = 'CREATE TABLE IF NOT EXISTS ' . $tableName . ' ('; - foreach($oneTable as $key => $value) + foreach(StructTablesDB::$structureOfTables as $tableName => $oneTable) { - $fields_and_types[] = $key . ' ' . $value; + $query = 'CREATE TABLE IF NOT EXISTS ' . $tableName . ' ('; + foreach($oneTable as $key => $value) + { + $query .= $key . ' ' . $value . ', '; + } + $query .= 'PRIMARY KEY(ID AUTOINCREMENT));'; + parent::getInstance()->exec($query); } - $query .= implode(', ', $fields_and_types); // implode() convertit un tableau en une chaîne avec un séparateur entre chaque élément - $query .= ', PRIMARY KEY(ID AUTOINCREMENT));'; - //echo($query . "\n\n"); - parent::getInstance()->exec($query); // merci singleton! + $first_time = false; + } + else + { + echo "Model::createTables() a déjà été appelée et ne fera rien.\n"; } } } -- cgit v1.2.3