2 Commits

Author SHA1 Message Date
Gregory Letellier
4d7f0d6d83 suppression de l'objet db dans l'objet QueryBuilder 2023-11-03 08:59:35 +01:00
Gregory Letellier
a6c51f5f17 renommage de l'objet DB en Connection, suppression de la variable privée db dans le model 2023-11-03 08:58:42 +01:00
4 changed files with 15 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ use Dotenv\Dotenv;
use PDO;
use PDOStatement;
class Db
class Connection
{
protected PDO $pdo;
protected string $name;
@@ -170,7 +170,7 @@ class Db
{
foreach ($connections as $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])) {
$instance = self::$instances[$connection];
if ($instance instanceof Db) {
if ($instance instanceof Connection) {
return self::$instances[$connection];
}
}

View File

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

View File

@@ -4,7 +4,6 @@ namespace Kletellier\PdoWrapper;
class QueryBuilder
{
protected ?Db $db;
protected array $columns;
protected array $wheres;
protected array $orders;
@@ -22,7 +21,6 @@ class QueryBuilder
$this->table = $table;
$this->pk = $pk;
$this->connection = $connection;
$this->db = null;
$this->reset();
}
@@ -197,8 +195,7 @@ class QueryBuilder
private function getData(): mixed
{
$this->db = Db::getInstance($this->connection);
return $this->db->getSelectQuery($this->getQuery());
return Connection::getInstance($this->connection)->getSelectQuery($this->getQuery());
}
private function getConstructedQuery(): Query

View File

@@ -1,18 +1,18 @@
<?php
use Kletellier\PdoWrapper\Collection;
use Kletellier\PdoWrapper\Db;
use Kletellier\PdoWrapper\Connection;
use Kletellier\PdoWrapper\EventDispatcher;
use Kletellier\PdoWrapper\Model;
use Kletellier\PdoWrapper\QueryBuilder;
test("create db",function () {
$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);");
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);");
expect($ret)->toBe(true);
});