62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
||
|
||
namespace goodboyalex\php_db_components_pack\enums;
|
||
|
||
use goodboyalex\php_components_pack\classes\Tuple;
|
||
use goodboyalex\php_components_pack\traits\EnumExtensionsTrait;
|
||
|
||
/**
|
||
*Перечисление PDO-драйверов.
|
||
*
|
||
* @author Александр Бабаев
|
||
* @package php_db_components_pack
|
||
* @version 1.0
|
||
* @since 1.0
|
||
* @see \PDO
|
||
*/
|
||
enum DBDriver: int
|
||
{
|
||
// Подключаем trait для работы с перечислениями
|
||
use EnumExtensionsTrait;
|
||
|
||
/**
|
||
* MySQL
|
||
*/
|
||
case MySQL = 0;
|
||
|
||
/**
|
||
* Microsoft SQL
|
||
*/
|
||
case MSSQL = 1;
|
||
|
||
/**
|
||
* PostgreSQL
|
||
*/
|
||
case PostgreSQL = 2;
|
||
|
||
/**
|
||
* OracleDB
|
||
*/
|
||
case OracleDB = 3;
|
||
|
||
/**
|
||
* SQLite
|
||
*/
|
||
case SQLite = 4;
|
||
|
||
/**
|
||
* Получить знаки открытия/закрытия полей для СУБД.
|
||
*
|
||
* @param DBDriver $driver Драйвер СУБД.
|
||
*
|
||
* @return Tuple Возвращает кортеж [знак открытия, знак закрытия].
|
||
*/
|
||
public static function GetSigns (DBDriver $driver): Tuple
|
||
{
|
||
return match ($driver) {
|
||
DBDriver::MySQL, DBDriver::SQLite => new Tuple('`', '`'),
|
||
DBDriver::MSSQL => new Tuple('[', ']'),
|
||
DBDriver::PostgreSQL, DBDriver::OracleDB => new Tuple('"', '"'),
|
||
};
|
||
}
|
||
} |