rosavox/lib/alveolata/database/functions.php
2025-05-23 07:33:29 +00:00

61 lines
1.3 KiB
PHP

<?php
namespace alveolata\database;
// require_once(DIR_ALVEOLATA . '/definitions.php');
require_once(DIR_ALVEOLATA . '/database/abstract/interface.php');
require_once(DIR_ALVEOLATA . '/database/implementation-sqlite/wrapper-class.php');
require_once(DIR_ALVEOLATA . '/database/implementation-mysql/wrapper-class.php');
require_once(DIR_ALVEOLATA . '/database/implementation-postgresql/wrapper-class.php');
/**
* @author Christian Fraß <frass@greenscale.de>
*/
function make(
string $kind,
array $parameters
) : interface_database
{
switch ($kind) {
default: {
throw (new \Exception(sprintf('invalid database kind "%s"', $kind)));
break;
}
case 'sqlite': {
return (
implementation_sqlite::make(
$parameters['path'],
$parameters['verbosity'] ?? 0
)
);
break;
}
case 'mysql': {
return (
implementation_mysql::make(
$parameters['host'],
$parameters['port'],
$parameters['schema'],
$parameters['username'],
$parameters['password']
)
);
break;
}
case 'postgresql': {
return (
implementation_postgresql::make(
$parameters['host'],
$parameters['port'],
$parameters['schema'],
$parameters['username'],
$parameters['password']
)
);
break;
}
}
}
?>