mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-29 08:00:28 +01:00
147 lines
3.0 KiB
PHP
147 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Xentral\Components\Database;
|
|
|
|
final class DatabaseConfig
|
|
{
|
|
/** @var string $hostname */
|
|
private $hostname;
|
|
|
|
/** @var string $username */
|
|
private $username;
|
|
|
|
/** @var string $password */
|
|
private $password;
|
|
|
|
/** @var string $database */
|
|
private $database;
|
|
|
|
/** @var string $charset */
|
|
private $charset;
|
|
|
|
/** @var int $port */
|
|
private $port;
|
|
|
|
/** @var array $queries */
|
|
private $queries;
|
|
|
|
/**
|
|
* @param string $hostname
|
|
* @param string $username
|
|
* @param string $password
|
|
* @param string $database
|
|
* @param string|null $charset
|
|
* @param int|null $port
|
|
* @param array $queries
|
|
*/
|
|
public function __construct(
|
|
$hostname,
|
|
$username,
|
|
$password,
|
|
$database,
|
|
$charset = null,
|
|
$port = null,
|
|
array $queries = []
|
|
) {
|
|
$this->hostname = (string)$hostname;
|
|
$this->username = (string)$username;
|
|
$this->password = (string)$password;
|
|
$this->database = (string)$database;
|
|
$this->charset = $charset !== null ? (string)$charset : 'utf8';
|
|
$this->port = $port !== null ? (int)$port : 3306;
|
|
$this->queries = $queries;
|
|
}
|
|
|
|
/**
|
|
* @param array $config
|
|
*
|
|
* @return DatabaseConfig
|
|
*/
|
|
public static function fromArray(array $config)
|
|
{
|
|
return new DatabaseConfig(
|
|
$config['hostname'],
|
|
$config['username'],
|
|
$config['password'],
|
|
$config['database'],
|
|
isset($config['charset']) ? $config['charset'] : null,
|
|
isset($config['port']) ? $config['port'] : null,
|
|
isset($config['queries']) ? $config['queries'] : []
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getHostname()
|
|
{
|
|
return $this->hostname;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getUsername()
|
|
{
|
|
return $this->username;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getPassword()
|
|
{
|
|
return $this->password;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getDatabase()
|
|
{
|
|
return $this->database;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getCharset()
|
|
{
|
|
return $this->charset;
|
|
}
|
|
|
|
/**
|
|
* @return int
|
|
*/
|
|
public function getPort()
|
|
{
|
|
return $this->port;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function getQueries()
|
|
{
|
|
return $this->queries;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function __debugInfo()
|
|
{
|
|
return [
|
|
'args' => [
|
|
'hostname' => $this->hostname,
|
|
'username' => '****',
|
|
'password' => '****',
|
|
'database' => $this->database,
|
|
'charset' => $this->charset,
|
|
'port' => $this->port,
|
|
'queries' => $this->queries,
|
|
],
|
|
];
|
|
}
|
|
}
|