<?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; } }