31 lines
886 B
PHP
31 lines
886 B
PHP
|
<?php
|
||
|
namespace EEPROM;
|
||
|
|
||
|
use Index\Data\IDbConnection;
|
||
|
use Index\Data\Migration\IDbMigrationRepo;
|
||
|
use Index\Data\Migration\DbMigrationManager;
|
||
|
use Index\Data\Migration\FsDbMigrationRepo;
|
||
|
|
||
|
class DatabaseContext {
|
||
|
public function __construct(
|
||
|
private IDbConnection $connection
|
||
|
) {}
|
||
|
|
||
|
public function getConnection(): IDbConnection {
|
||
|
return $this->connection;
|
||
|
}
|
||
|
|
||
|
public function getQueryCount(): int {
|
||
|
$result = $this->connection->query('SHOW SESSION STATUS LIKE "Questions"');
|
||
|
return $result->next() ? $result->getInteger(1) : 0;
|
||
|
}
|
||
|
|
||
|
public function createMigrationManager(): DbMigrationManager {
|
||
|
return new DbMigrationManager($this->connection, 'prm_' . DbMigrationManager::DEFAULT_TABLE);
|
||
|
}
|
||
|
|
||
|
public function createMigrationRepo(): IDbMigrationRepo {
|
||
|
return new FsDbMigrationRepo(PRM_MIGRATIONS);
|
||
|
}
|
||
|
}
|