Pārlūkot izejas kodu

fix databasename from params

phpdevcommunity 7 mēneši atpakaļ
vecāks
revīzija
36a6839f83

+ 0 - 4
src/Driver/DriverInterface.php

@@ -10,10 +10,6 @@ use PhpDevCommunity\PaperORM\Schema\SchemaInterface;
 interface DriverInterface
 {
     public function connect(array $params): PaperPDO;
-
-    public function getDatabaseName(): string;
-
     public function createDatabasePlatform(PaperConnection $connection): PlatformInterface;
-
     public function createDatabaseSchema(): SchemaInterface;
 }

+ 0 - 7
src/Driver/SqliteDriver.php

@@ -11,7 +11,6 @@ use PhpDevCommunity\PaperORM\Schema\SqliteSchema;
 
 final class SqliteDriver implements DriverInterface
 {
-    private string $databaseName;
     public function connect(
         #[SensitiveParameter]
         array $params
@@ -21,7 +20,6 @@ final class SqliteDriver implements DriverInterface
             PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
         ];
 
-        $this->databaseName = $params['path'] ?? '';
         return new PaperPDO(
             $this->constructPdoDsn(array_intersect_key($params, ['path' => true, 'memory' => true])),
             $params['user'] ?? '',
@@ -56,9 +54,4 @@ final class SqliteDriver implements DriverInterface
     {
         return new SqliteSchema();
     }
-
-    public function getDatabaseName(): string
-    {
-        return $this->databaseName;
-    }
 }

+ 5 - 1
src/Platform/SqlitePlatform.php

@@ -35,7 +35,7 @@ class SqlitePlatform extends AbstractPlatform
 
     public function getDatabaseName(): string
     {
-        return $this->connection->getDriver()->getDatabaseName();
+        return $this->connection->getParams()['path'] ?? '';
     }
 
     public function listTables(): array
@@ -115,6 +115,10 @@ class SqlitePlatform extends AbstractPlatform
             return;
         }
 
+        if (empty($database)) {
+            throw new LogicException(sprintf("The database name cannot be empty. %s::createDatabase()", __CLASS__));
+        }
+
         $databaseFile = pathinfo($database);
         if (empty($databaseFile['extension'])) {
             throw new LogicException(sprintf("The database name '%s' must have an extension.", $database));