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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как в Drupal 9 получить URL изображения, сохраненного в поле media

Июль 27, 2021 г.

Чтобы извлечь адрес изображения из картинки в поле типа media, требуется ряд преобразований с использованием Entity объектов Drupal. Предполагается, что вы уже загрузили entity с полем типа media (в примере называется - field_media) в какую то ...

Читать

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

Август 1, 2021 г.

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

Читать

 

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

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



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