diff --git a/kernel/core.php b/kernel/core.php index d9f6c85..7c1930e 100644 --- a/kernel/core.php +++ b/kernel/core.php @@ -1,13 +1,13 @@ get(); + // Application des différents namespace utilisés par le systeme $router->registerNamespace('admin', 2, false); $router->registerNamespace('user', 1, false); diff --git a/kernel/database.php b/kernel/database.php new file mode 100644 index 0000000..bd9121a --- /dev/null +++ b/kernel/database.php @@ -0,0 +1,39 @@ +dbsettings = $dbsettings; + $this->connect(); + } + + private function connect() { + $dsn = "mysql:host={$this->dbsettings['server']};dbname={$this->dbsettings['name']};charset=utf8"; + try { + $this->pdo = new PDO($dsn, $this->dbsettings['user'], $this->dbsettings['pass']); + $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + } catch (PDOException $e) { + die("Connection to databasse failed."); + } + } + + public function doquery($table, $query, $params = []) { + $query = str_replace("{{table}}", $this->dbsettings["prefix"] . "_" . $table, $query); + $stmt = $this->pdo->prepare($query); + $stmt->execute($params); + $this->numqueries++; + return $stmt; + } + + public function getNumQueries() { + return $this->numqueries; + } + + public function getSecretWord() { + return $this->dbsettings["secretword"]; + } +} \ No newline at end of file diff --git a/kernel/init.php b/kernel/init.php index e27267d..4fec915 100644 --- a/kernel/init.php +++ b/kernel/init.php @@ -31,6 +31,7 @@ if (DEBUG_MODE) { // Defined folders define('PATH_HELPERS', PATH_KERNEL . 'helpers' . DS); +define('PATH_REPOSITORIES', PATH_KERNEL . 'repositories' . DS); require(PATH_HELPERS . 'validators.php'); @@ -41,9 +42,16 @@ require(PATH_KERNEL . 'namespace.php'); require(PATH_KERNEL . 'router.php'); require(PATH_KERNEL . 'messages.php'); require(PATH_KERNEL . 'postdata.php'); +require(PATH_KERNEL . 'database.php'); + +require(PATH_REPOSITORIES . 'base.php'); +require(PATH_REPOSITORIES . 'control.php'); $starttime = getmicrotime(); $numqueries = 0; -$link = opendb(); \ No newline at end of file +$link = opendb(); + +// Repositories +$controlRepositories = new ControlRepository(); \ No newline at end of file diff --git a/kernel/repositories/base.php b/kernel/repositories/base.php new file mode 100644 index 0000000..ca0e24d --- /dev/null +++ b/kernel/repositories/base.php @@ -0,0 +1,32 @@ +table = $table; + } + + public function getById($id) { + return $this->fetchOne("SELECT * FROM {{table}} WHERE id = :id", ['id' => $id]); + } + + public function getAll() { + return $this->fetchAll("SELECT * FROM {{table}}"); + } + + protected function doquery($query, $params = []) { + global $db; + return $db->doquery($this->table, $query, $params); + } + + protected function fetchOne($query, $params) { + $stmt = $this->doquery($query, $params); + return $stmt->fetch(PDO::FETCH_ASSOC); + } + + protected function fetchAll($query, $params) { + $stmt = $this->doquery($query, $params); + return $stmt->fetchAll(PDO::FETCH_ASSOC); + } +} \ No newline at end of file diff --git a/kernel/repositories/control.php b/kernel/repositories/control.php new file mode 100644 index 0000000..32bebaf --- /dev/null +++ b/kernel/repositories/control.php @@ -0,0 +1,15 @@ +getById(1); + } +} \ No newline at end of file