Определяем СУБД, к которой подключено приложение на Yii 2

Необходимость определить какая СУБД используется возникает, когда требуется реализовать специфичный для той или иной СУБД функционал в условиях поддержки приложением работы c СУБД нескольких видов. Например, MySQL и PostgreSQL.

К сожалению, Yii даже в версии 2 не предоставляет штатного функционала для решения данной задачи. Но, этот недостаток можно сравнительно легко восполнить самостоятельно.

В Yii 2 информация о подключении к БД содержится в файле db.php в папке config. Вот его примерное содержание при использовании PostgreSQL:

Обратите внимание на элемент массива под названием dsn. Он-то и содержит информацию о типе СУБД и ряде других основных параметрах подключения.

Получить этот элемент в любом месте приложения не сложно:

Единственная проблема – все данные о подключении представлены в виде одной строки. Но, и этот вопрос не трудно решить, разобрав строку при помощи регулярного выражения.

Ниже представлен пример метода, который проверяет используется ли в качестве СУБД PostgreSQL.

Пример его использования:

Вышеприведённый метод в случае необходимости можно доработать для других СУБД. Например, для MySQL вместо «pgsql» будет «mysql», для Oracle «oci» и т.д.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *