Пример кода переключения между базами в Drupal 9

Когда требуется подключиться и подтянуть данные из не основной базы, то нужно сначала задать свойства нового подключения, подключиться, выполнить запрос, а затем вернуть настройки в исходное состояние. Рассмотрим примеры кода, которые демонстрируют как это сделать.

Подключение к другой базе

Задать параметры подключения можно через файл конфигурации сайта (дополнительно к настройкам основной базы). К примеру, пусть это будет подключение к mysql базе:

Вам нужно придумать уникальное название для вашего подключения — <CONNECTION-KEY> и обычно вы указываете <DATABASE-KEY> — как ‘default’, если у вас всего одна база данных.

Классом-контейнером для нужных нам операций является класс Drupal\Core\Database\Database.

В коде вы получаете объект подключения к базе следующим образом:

Настройки подключения можно задать и напрямую из вашего кода:

Операции с базой

Получив соединение, вы можете выполнять операции с базой данных. В примере, я пытаюсь получить данные из таблицы users:

Обратите внимание на обработку исключений, простейший пример которой приведен выше.

Переключение на основную базу

Далее вам требуется вернуться к основным настройкам и продолжить работу с основной базой.

По сути это не обязательно, т.к. \Drupal::database() — это и есть основной ваш объект подключения к базе, но если далее в программе какие то модули запрашивают Database::getConnection(), то скорее всего им нужна не ваша «левая» база.

Написать комментарий

Мало букафф? Читайте есчо !

Подстановка токенов в коде Drupal 9

Август 1, 2021 г.

Ядро и модули объявляют множество токенов подстановки. Рассмотрим как получить доступ к глобальному объекту типа \Drupal\Core\Utility\Token и выполнить подстановку в строке. Ядро предоставляет экземпляр объекта через следующий запрос: [crayon-673ebc6e3ae41543981476/] ...

Читать

Программный рендер меню в Drupal 9

Сентябрь 8, 2021 г.

Продолжаю публиковать сниппеты кода для drupal 9, на этот раз несколько полезных вещей, связанных с рендерингом меню. Рендер меню по известному id меню Вы знаете идентификатор, вам нужен рендер: [crayon-673ebc6e3af98500426647/] Рендер ...

Читать

 

Комментарии к «Пример кода переключения между базами в Drupal 9»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: