# Перечисление `DBDriver` Перечисление представляет собой набор констант, определяющих типы драйверов баз данных, поддерживаемых системой. Используется совместно с библиотекой PHP PDO для идентификации различных типов СУБД. ## Основная информация - **Автор**: Александр Бабаев - **Версия**: 1.0.2 - **Дата начала поддержки**: с версии 1.0 ## Пространство имен и зависимости ```php namespace goodboyalex\php_db_components_pack\enums; use goodboyalex\php_components_pack\traits\EnumExtensionsTrait; ``` ## Возможные значения перечисления | Константа | Значение | Описание | |:------------:|:--------:|-----------------------| | `MySQL` | `0` | Драйвер MySQL | | `MSSQL` | `1` | Драйвер MS SQL Server | | `PostgreSQL` | `2` | Драйвер PostgreSQL | | `OracleDB` | `3` | Драйвер Oracle | | `SQLite` | `4` | Драйвер SQLite | ## Методы ### Метод `GetSigns` Метод `GetSigns` предназначен для получения знаков, которыми принято заключать имена полей и таблиц в различных системах управления базами данных (СУБД). Некоторые СУБД используют двойные кавычки `"`, квадратные скобки `[]`, обратные апострофы `` ` `` или другие специальные символы для экранирования идентификаторов (имен таблиц, колонок и других объектов базы данных). #### Синтаксис ```php public static function GetSigns(DBDriver $driver): Tuple ``` #### Аргументы - **$driver**: Переменная типа `DBDriver`, указывающая на используемую СУБД (например, MySQL, PostgreSQL, SQLite и т.д.). #### Возвращаемое значение Метод возвращает кортеж `Tuple`, содержащий два элемента: - Первый элемент — знак открывающий. - Второй элемент — знак закрывающий. Например, для `MySQL` и `PostgreSQL` чаще всего возвращаются символы обратной косой черты и прямой (```"``, ```"``) соответственно, а для `MS SQL Server` — квадратные скобки (`[`, `]`). #### Пример использования Допустим, у вас есть код, который выводит SQL-запрос с экранированием идентификатора в зависимости от используемой СУБД: ```php use goodboyalex\php_db_components_pack\enums\DBDriver; // Получаем знаки для MySQL [$open, $close] = DBDriver::GetSigns(DBDriver::MYSQL); // Использование полученных знаков $sql = sprintf("SELECT %s%s%s FROM users;", $open, 'username', $close); ``` В результате для MySQL получится: ```sql SELECT `username` FROM users; ``` Аналогично, для PostgreSQL: ```sql SELECT "username" FROM users; ``` ## Особенности реализации Используется trait `EnumExtensionsTrait`, предоставляющий дополнительные методы для работы с перечислениями, такие как преобразование значений в целые числа и обратно. ## Использование Примеры использования перечисления: ```php use goodboyalex\php_db_components_pack\enums\DBDriver; // Получение значения по имени $dbType = DBDriver::MySQL; // Проверка типа драйвера if ($dbType === DBDriver::MySQL) echo "Это MySQL"; ``` ## Совместимость Перечисление совместимо с современными версиями PHP, начиная с версии 8.1, поддерживающей нативные перечисления ( `enum`). Если используется более ранняя версия PHP, возможно потребуется альтернативная реализация на основе классов или сторонних пакетов. ## Вывод Этот класс является частью библиотеки `goodboyalex/php_db_components_pack` и предназначен для унификации работы с различными системами управления базами данных посредством стандартного интерфейса PDO. [На главную](../../index.md)