Skip to content

Commit c4bc4af

Browse files
authored
Merge pull request #530 from utopia-php/feat-expose-reconnect
Expose reconnect
2 parents e59e6e0 + dc5727d commit c4bc4af

File tree

5 files changed

+38
-2
lines changed

5 files changed

+38
-2
lines changed

src/Database/Adapter.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,11 @@ protected function trigger(string $event, mixed $query): mixed
390390
*/
391391
abstract public function ping(): bool;
392392

393+
/**
394+
* Reconnect Database
395+
*/
396+
abstract public function reconnect(): void;
397+
393398
/**
394399
* Create Database
395400
*
@@ -904,6 +909,8 @@ abstract public function getSupportForUpserts(): bool;
904909
*/
905910
abstract public function getSupportForCacheSkipOnFailure(): bool;
906911

912+
abstract public function getSupportForReconnection(): bool;
913+
907914
/**
908915
* Get current attribute count from collection document
909916
*

src/Database/Adapter/Mongo.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ public function ping(): bool
100100
return $this->getClient()->query(['ping' => 1])->ok ?? false;
101101
}
102102

103+
public function reconnect(): void
104+
{
105+
$this->client->connect();
106+
}
107+
103108
/**
104109
* Create Database
105110
*
@@ -1843,6 +1848,11 @@ public function getSupportForUpserts(): bool
18431848
return false;
18441849
}
18451850

1851+
public function getSupportForReconnection(): bool
1852+
{
1853+
return false;
1854+
}
1855+
18461856
/**
18471857
* Get current attribute count from collection document
18481858
*

src/Database/Adapter/SQL.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ public function ping(): bool
132132
->execute();
133133
}
134134

135+
public function reconnect(): void
136+
{
137+
$this->getPDO()->reconnect();
138+
}
139+
135140
/**
136141
* Check if Database exists
137142
* Optionally check if collection exists in Database
@@ -881,6 +886,11 @@ public function getSupportForRelationships(): bool
881886
return true;
882887
}
883888

889+
public function getSupportForReconnection(): bool
890+
{
891+
return true;
892+
}
893+
884894
/**
885895
* @param mixed $stmt
886896
* @param Query $query
@@ -1155,7 +1165,7 @@ public function getSQLConditions(array $queries = [], string $separator = 'AND')
11551165
}
11561166
}
11571167

1158-
$tmp = implode(' '. $separator .' ', $conditions);
1168+
$tmp = implode(' ' . $separator . ' ', $conditions);
11591169
return empty($tmp) ? '' : '(' . $tmp . ')';
11601170
}
11611171

src/Database/Database.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,11 @@ public function ping(): bool
10721072
return $this->adapter->ping();
10731073
}
10741074

1075+
public function reconnect(): void
1076+
{
1077+
$this->adapter->reconnect();
1078+
}
1079+
10751080
/**
10761081
* Create the database
10771082
*

tests/e2e/Adapter/Base.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17734,9 +17734,13 @@ public function testEvents(): void
1773417734
Database::EVENT_INDEX_DELETE,
1773517735
Database::EVENT_DOCUMENT_PURGE,
1773617736
Database::EVENT_DOCUMENT_DELETE,
17737+
Database::EVENT_DOCUMENT_PURGE,
17738+
Database::EVENT_DOCUMENT_PURGE,
1773717739
Database::EVENT_DOCUMENTS_DELETE,
17738-
Database::EVENT_ATTRIBUTE_DELETE,
1773917740
Database::EVENT_DOCUMENT_PURGE,
17741+
Database::EVENT_ATTRIBUTE_DELETE,
17742+
Database::EVENT_COLLECTION_DELETE,
17743+
Database::EVENT_DATABASE_DELETE,
1774017744
Database::EVENT_DOCUMENT_PURGE,
1774117745
Database::EVENT_DOCUMENTS_DELETE,
1774217746
Database::EVENT_DOCUMENT_PURGE,

0 commit comments

Comments
 (0)