slovocast/app/src/Infrastructure/Database/DatabaseConnection.php

42 lines
884 B
PHP

<?php
namespace Slovocast\Infrastructure\Database;
use Slovocast\Infrastructure\Api\Database\DatabaseHandlerInterface;
use PDO;
class DatabaseConnection implements DatabaseHandlerInterface
{
private PDO $pdo;
public function __construct(
private string $host,
private string $username,
private string $password,
private string $database,
private int $port = 3306
) {
$this->pdo = new PDO($this->getDsn(), $username, $password);
}
public function getConnection(): PDO
{
return $this->pdo;
}
public function getDsn(): string
{
return "mysql:dbname={$this->database};host={$this->host};port={$this->port}";
}
public function getHost(): string
{
return $this->host;
}
public function getDatabase(): string
{
return $this->database;
}
}