Loading CHANGELOG.md +6 −0 Original line number Diff line number Diff line 1.1.0 (30/01/2025) ------------------ - Possibilité d'utiliser Connection de Doctrine pour faire des requêtes en modification (pb Oracle gestion des transactions) 1.0.6 (05/12/2024) ------------------ Loading src/Bdd.php +77 −17 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Unicaen\BddAdmin; use Doctrine\DBAL\Connection; use Doctrine\DBAL\Types\Types; use Unicaen\BddAdmin\Data\DataManager; use Unicaen\BddAdmin\Ddl\Ddl; use Unicaen\BddAdmin\Ddl\DdlDiff; Loading Loading @@ -127,6 +129,8 @@ class Bdd /** @var array|Bdd[] */ private array $bdds = []; private ?Connection $doctrineConnection = null; private array $config; private ?DriverInterface $driver = null; Loading Loading @@ -177,6 +181,21 @@ class Bdd public function getDoctrineConnection(): ?Connection { return $this->doctrineConnection; } public function setDoctrineConnection(?Connection $doctrineConnection): Bdd { $this->doctrineConnection = $doctrineConnection; return $this; } /** * Hack pour initialiser une classe à partir d'un container respectant Psr\Container\ContainerInterface * Si la classe n'est pas connue du container, alors elle est instanciée à l'aide de new Loading Loading @@ -279,7 +298,11 @@ class Bdd public function beginTransaction(): self { if ($this->doctrineConnection) { $this->doctrineConnection->beginTransaction(); } else { $this->driver->beginTransaction(); } return $this; } Loading @@ -288,7 +311,11 @@ class Bdd public function commitTransaction(): self { if ($this->doctrineConnection) { $this->doctrineConnection->commit(); } else { $this->driver->commitTransaction(); } return $this; } Loading @@ -297,7 +324,11 @@ class Bdd public function rollbackTransaction(): self { if ($this->doctrineConnection) { $this->doctrineConnection->rollback(); } else { $this->driver->rollbackTransaction(); } return $this; } Loading @@ -306,7 +337,36 @@ class Bdd public function exec(string $sql, array $params = [], array $types = []): self { if ($this->doctrineConnection) { foreach ($types as $ti => $tv) { switch ($tv) { case self::TYPE_INT: $types[$ti] = Types::INTEGER; break; case self::TYPE_BOOL: $types[$ti] = Types::BOOLEAN; break; case self::TYPE_FLOAT: $types[$ti] = Types::FLOAT; break; case self::TYPE_STRING: $types[$ti] = Types::STRING; break; case self::TYPE_DATE: $types[$ti] = Types::DATETIME_IMMUTABLE; break; case self::TYPE_BLOB: $types[$ti] = Types::BLOB; break; case self::TYPE_CLOB: $types[$ti] = Types::TEXT; break; } } $this->doctrineConnection->executeStatement($sql, $params); } else { $this->driver->exec($sql, $params, $types); } return $this; } Loading Loading
CHANGELOG.md +6 −0 Original line number Diff line number Diff line 1.1.0 (30/01/2025) ------------------ - Possibilité d'utiliser Connection de Doctrine pour faire des requêtes en modification (pb Oracle gestion des transactions) 1.0.6 (05/12/2024) ------------------ Loading
src/Bdd.php +77 −17 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Unicaen\BddAdmin; use Doctrine\DBAL\Connection; use Doctrine\DBAL\Types\Types; use Unicaen\BddAdmin\Data\DataManager; use Unicaen\BddAdmin\Ddl\Ddl; use Unicaen\BddAdmin\Ddl\DdlDiff; Loading Loading @@ -127,6 +129,8 @@ class Bdd /** @var array|Bdd[] */ private array $bdds = []; private ?Connection $doctrineConnection = null; private array $config; private ?DriverInterface $driver = null; Loading Loading @@ -177,6 +181,21 @@ class Bdd public function getDoctrineConnection(): ?Connection { return $this->doctrineConnection; } public function setDoctrineConnection(?Connection $doctrineConnection): Bdd { $this->doctrineConnection = $doctrineConnection; return $this; } /** * Hack pour initialiser une classe à partir d'un container respectant Psr\Container\ContainerInterface * Si la classe n'est pas connue du container, alors elle est instanciée à l'aide de new Loading Loading @@ -279,7 +298,11 @@ class Bdd public function beginTransaction(): self { if ($this->doctrineConnection) { $this->doctrineConnection->beginTransaction(); } else { $this->driver->beginTransaction(); } return $this; } Loading @@ -288,7 +311,11 @@ class Bdd public function commitTransaction(): self { if ($this->doctrineConnection) { $this->doctrineConnection->commit(); } else { $this->driver->commitTransaction(); } return $this; } Loading @@ -297,7 +324,11 @@ class Bdd public function rollbackTransaction(): self { if ($this->doctrineConnection) { $this->doctrineConnection->rollback(); } else { $this->driver->rollbackTransaction(); } return $this; } Loading @@ -306,7 +337,36 @@ class Bdd public function exec(string $sql, array $params = [], array $types = []): self { if ($this->doctrineConnection) { foreach ($types as $ti => $tv) { switch ($tv) { case self::TYPE_INT: $types[$ti] = Types::INTEGER; break; case self::TYPE_BOOL: $types[$ti] = Types::BOOLEAN; break; case self::TYPE_FLOAT: $types[$ti] = Types::FLOAT; break; case self::TYPE_STRING: $types[$ti] = Types::STRING; break; case self::TYPE_DATE: $types[$ti] = Types::DATETIME_IMMUTABLE; break; case self::TYPE_BLOB: $types[$ti] = Types::BLOB; break; case self::TYPE_CLOB: $types[$ti] = Types::TEXT; break; } } $this->doctrineConnection->executeStatement($sql, $params); } else { $this->driver->exec($sql, $params, $types); } return $this; } Loading