From bf6655a534a6775d30cafa67bd801276bda1d98d Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 13 Aug 2024 23:45:21 +0200 Subject: =?UTF-8?q?VERSION=200.2=20doctrine=20ORM=20et=20entit=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbal/src/Driver/SQLite3/Connection.php | 109 +++++++++++++++++++++ vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php | 48 +++++++++ .../doctrine/dbal/src/Driver/SQLite3/Exception.php | 20 ++++ vendor/doctrine/dbal/src/Driver/SQLite3/Result.php | 88 +++++++++++++++++ .../doctrine/dbal/src/Driver/SQLite3/Statement.php | 61 ++++++++++++ 5 files changed, 326 insertions(+) create mode 100644 vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php create mode 100644 vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php create mode 100644 vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php create mode 100644 vendor/doctrine/dbal/src/Driver/SQLite3/Result.php create mode 100644 vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php (limited to 'vendor/doctrine/dbal/src/Driver/SQLite3') diff --git a/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php b/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php new file mode 100644 index 0000000..1e9af93 --- /dev/null +++ b/vendor/doctrine/dbal/src/Driver/SQLite3/Connection.php @@ -0,0 +1,109 @@ +connection->prepare($sql); + } catch (\Exception $e) { + throw Exception::new($e); + } + + assert($statement !== false); + + return new Statement($this->connection, $statement); + } + + public function query(string $sql): Result + { + try { + $result = $this->connection->query($sql); + } catch (\Exception $e) { + throw Exception::new($e); + } + + assert($result !== false); + + return new Result($result, $this->connection->changes()); + } + + public function quote(string $value): string + { + return sprintf('\'%s\'', SQLite3::escapeString($value)); + } + + public function exec(string $sql): int + { + try { + $this->connection->exec($sql); + } catch (\Exception $e) { + throw Exception::new($e); + } + + return $this->connection->changes(); + } + + public function lastInsertId(): int + { + $value = $this->connection->lastInsertRowID(); + if ($value === 0) { + throw NoIdentityValue::new(); + } + + return $value; + } + + public function beginTransaction(): void + { + try { + $this->connection->exec('BEGIN'); + } catch (\Exception $e) { + throw Exception::new($e); + } + } + + public function commit(): void + { + try { + $this->connection->exec('COMMIT'); + } catch (\Exception $e) { + throw Exception::new($e); + } + } + + public function rollBack(): void + { + try { + $this->connection->exec('ROLLBACK'); + } catch (\Exception $e) { + throw Exception::new($e); + } + } + + public function getNativeConnection(): SQLite3 + { + return $this->connection; + } + + public function getServerVersion(): string + { + return SQLite3::version()['versionString']; + } +} diff --git a/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php b/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php new file mode 100644 index 0000000..e6996d3 --- /dev/null +++ b/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php @@ -0,0 +1,48 @@ +enableExceptions(true); + + return new Connection($connection); + } +} diff --git a/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php b/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php new file mode 100644 index 0000000..d423004 --- /dev/null +++ b/vendor/doctrine/dbal/src/Driver/SQLite3/Exception.php @@ -0,0 +1,20 @@ +getMessage(), null, (int) $exception->getCode(), $exception); + } +} diff --git a/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php b/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php new file mode 100644 index 0000000..61b42d3 --- /dev/null +++ b/vendor/doctrine/dbal/src/Driver/SQLite3/Result.php @@ -0,0 +1,88 @@ +result = $result; + } + + public function fetchNumeric(): array|false + { + if ($this->result === null) { + return false; + } + + return $this->result->fetchArray(SQLITE3_NUM); + } + + public function fetchAssociative(): array|false + { + if ($this->result === null) { + return false; + } + + return $this->result->fetchArray(SQLITE3_ASSOC); + } + + public function fetchOne(): mixed + { + return FetchUtils::fetchOne($this); + } + + /** @inheritDoc */ + public function fetchAllNumeric(): array + { + return FetchUtils::fetchAllNumeric($this); + } + + /** @inheritDoc */ + public function fetchAllAssociative(): array + { + return FetchUtils::fetchAllAssociative($this); + } + + /** @inheritDoc */ + public function fetchFirstColumn(): array + { + return FetchUtils::fetchFirstColumn($this); + } + + public function rowCount(): int + { + return $this->changes; + } + + public function columnCount(): int + { + if ($this->result === null) { + return 0; + } + + return $this->result->numColumns(); + } + + public function free(): void + { + if ($this->result === null) { + return; + } + + $this->result->finalize(); + $this->result = null; + } +} diff --git a/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php b/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php new file mode 100644 index 0000000..fe22e1d --- /dev/null +++ b/vendor/doctrine/dbal/src/Driver/SQLite3/Statement.php @@ -0,0 +1,61 @@ +statement->bindValue($param, $value, $this->convertParamType($type)); + } + + public function execute(): Result + { + try { + $result = $this->statement->execute(); + } catch (\Exception $e) { + throw Exception::new($e); + } + + assert($result !== false); + + return new Result($result, $this->connection->changes()); + } + + /** @psalm-return self::TYPE_* */ + private function convertParamType(ParameterType $type): int + { + return match ($type) { + ParameterType::NULL => self::TYPE_NULL, + ParameterType::INTEGER, ParameterType::BOOLEAN => self::TYPE_INTEGER, + ParameterType::STRING, ParameterType::ASCII => self::TYPE_TEXT, + ParameterType::BINARY, ParameterType::LARGE_OBJECT => self::TYPE_BLOB, + }; + } +} -- cgit v1.2.3