Пример кода переключения между базами в 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-678b366bc7cc9031019170/] ...

Читать

Drupal 9 за БН amazon cloudfront

Октябрь 12, 2021 г.

Типичная проблема сайта, когда тот оказывается за балансировщиком нагрузки (load balancer), это несоответствие части заголовков запроса клиента и тех заголовков, которые передаются балансировщиком серверу. Чаще всего мы сталкиваемся с этим при запуске ...

Читать

 

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

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



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