45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
<?php
|
|
/*
|
|
* Copyright (c) 2022. Micha Espey <tracer@24unix.net>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*
|
|
*/
|
|
|
|
namespace App\Service;
|
|
|
|
use PDO;
|
|
|
|
/**
|
|
* Take care of the PDO object.
|
|
*/
|
|
class DatabaseConnection
|
|
{
|
|
private PDO $dbConnection;
|
|
|
|
// Currently no prefixes are used, but could be easily added to config.json.
|
|
const TABLE_PREFIX = '';
|
|
const TABLE_USERS = self::TABLE_PREFIX . "users";
|
|
const TABLE_ADDRESSES = self::TABLE_PREFIX . "addresses";
|
|
|
|
public function __construct(private readonly Config $config)
|
|
{
|
|
$dbHost = $this->config->getConfig(configKey: 'dbHost');
|
|
$dbPort = $this->config->getConfig(configKey: 'dbPort');
|
|
$dbDatabase = $this->config->getConfig(configKey: 'dbDatabase');
|
|
$dbUser = $this->config->getConfig(configKey: 'dbUser');
|
|
$dbPassword = $this->config->getConfig(configKey: 'dbPassword');
|
|
|
|
$this->dbConnection = new PDO(
|
|
dsn: "mysql:host=$dbHost;port=$dbPort;charset=utf8mb4;dbname=$dbDatabase",
|
|
username: $dbUser,
|
|
password: $dbPassword
|
|
);
|
|
}
|
|
|
|
public function getConnection(): PDO
|
|
{
|
|
return $this->dbConnection;
|
|
}
|
|
} |