renommage de l'objet DB en Connection, suppression de la variable privée db dans le model

This commit is contained in:
Gregory Letellier
2023-11-03 08:58:42 +01:00
parent d67916e2ff
commit a6c51f5f17
4 changed files with 13 additions and 16 deletions

View File

@@ -6,7 +6,7 @@ use Dotenv\Dotenv;
use PDO; use PDO;
use PDOStatement; use PDOStatement;
class Db class Connection
{ {
protected PDO $pdo; protected PDO $pdo;
protected string $name; protected string $name;
@@ -170,7 +170,7 @@ class Db
{ {
foreach ($connections as $connection) { foreach ($connections as $connection) {
if (!isset(self::$instances[$connection])) { if (!isset(self::$instances[$connection])) {
self::$instances[$connection] = new Db($connection, $config); self::$instances[$connection] = new Connection($connection, $config);
} }
} }
} }
@@ -183,7 +183,7 @@ class Db
} }
if (isset(self::$instances[$connection])) { if (isset(self::$instances[$connection])) {
$instance = self::$instances[$connection]; $instance = self::$instances[$connection];
if ($instance instanceof Db) { if ($instance instanceof Connection) {
return self::$instances[$connection]; return self::$instances[$connection];
} }
} }

View File

@@ -8,13 +8,11 @@ class Model
protected array $updated; protected array $updated;
protected string $table; protected string $table;
protected string $connection = ""; protected string $connection = "";
protected string $pk; protected string $pk;
private ?Db $db;
private bool $new; private bool $new;
public function __construct() public function __construct()
{ {
$this->db = null;
$this->new = true; $this->new = true;
$this->values = array(); $this->values = array();
$this->updated = array(); $this->updated = array();
@@ -64,13 +62,12 @@ class Model
} }
public function save(): bool public function save(): bool
{ {
$this->db = Db::getInstance($this->connection);
$ret = false; $ret = false;
$qb = $this->newQueryBuilder(); $qb = $this->newQueryBuilder();
if ($this->new) { if ($this->new) {
$query = $qb->getPreparedQuery($this->values); $query = $qb->getPreparedQuery($this->values);
$id = $this->db->insertQuery($query); $id = Connection::getInstance($this->connection)->insertQuery($query);
if ($id !== false) { if ($id !== false) {
$this->values[$this->pk] = $id; $this->values[$this->pk] = $id;
$this->new = false; $this->new = false;
@@ -85,7 +82,7 @@ class Model
$data[$updatecol] = $this->values[$updatecol]; $data[$updatecol] = $this->values[$updatecol];
} }
$query = $qb->getPreparedQuery($data, false); $query = $qb->getPreparedQuery($data, false);
$ret = $this->db->updateQuery($query); $ret = Connection::getInstance($this->connection)->updateQuery($query);
if ($ret) { if ($ret) {
$this->updated = []; $this->updated = [];
} }

View File

@@ -4,7 +4,7 @@ namespace Kletellier\PdoWrapper;
class QueryBuilder class QueryBuilder
{ {
protected ?Db $db; protected ?Connection $db;
protected array $columns; protected array $columns;
protected array $wheres; protected array $wheres;
protected array $orders; protected array $orders;
@@ -197,7 +197,7 @@ class QueryBuilder
private function getData(): mixed private function getData(): mixed
{ {
$this->db = Db::getInstance($this->connection); $this->db = Connection::getInstance($this->connection);
return $this->db->getSelectQuery($this->getQuery()); return $this->db->getSelectQuery($this->getQuery());
} }

View File

@@ -1,18 +1,18 @@
<?php <?php
use Kletellier\PdoWrapper\Collection; use Kletellier\PdoWrapper\Collection;
use Kletellier\PdoWrapper\Db; use Kletellier\PdoWrapper\Connection;
use Kletellier\PdoWrapper\EventDispatcher; use Kletellier\PdoWrapper\EventDispatcher;
use Kletellier\PdoWrapper\Model; use Kletellier\PdoWrapper\Model;
use Kletellier\PdoWrapper\QueryBuilder; use Kletellier\PdoWrapper\QueryBuilder;
test("create db",function () { test("create db",function () {
$config = ["conone" => ["TYPE"=>"sqlite", "DATABASE" => ":memory:" ], "contwo"=>["TYPE"=>"sqlite", "DATABASE" => ":memory:" ]]; $config = ["conone" => ["TYPE"=>"sqlite", "DATABASE" => ":memory:" ], "contwo"=>["TYPE"=>"sqlite", "DATABASE" => ":memory:" ]];
$db = Db::init($config,["conone","contwo"]); $db = Connection::init($config,["conone","contwo"]);
$ret = $db->executeRawQuery("CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT, col1 VARCHAR, date1 DATETIME);"); $ret = $db->executeRawQuery("CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT, col1 VARCHAR, date1 DATETIME);");
expect($ret)->toBe(true); expect($ret)->toBe(true);
$db2 = Db::getInstance("contwo"); $db2 = Connection::getInstance("contwo");
$ret = $db2->executeRawQuery("CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT, col1 VARCHAR, date1 DATETIME);"); $ret = $db2->executeRawQuery("CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT, col1 VARCHAR, date1 DATETIME);");
expect($ret)->toBe(true); expect($ret)->toBe(true);
}); });