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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Drupal 9 за БН amazon cloudfront

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

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

Читать

Вывод всех локальных переменных в twig

Июнь 3, 2024 г.

Все видимые переменные шаблона можно посмотреть в переменной _context. Вывести их имена, используя перебор циклом for: [crayon-6a7bf2bc25dcc347956237/] В Drupal, если вы используете модуль devel, в twig будет доступна функция dpm: [crayon-6a7bf2bc25dd3588034748/]

Читать

Рендер ссылки в twig

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

В шаблонах twig вы можете использовать функцию link, для рендера ссылки. Параметры вызова следующие - link($text, $uri, $attributes = {}), первые два - обязательные. [crayon-6a7bf2bc25ea6877643578/] Результатом будет следующий HTML код: ...

Читать

Error Code 1366 of Mysql при записи переводов в базу tmgmt_deepl

Октябрь 4, 2024 г.

Типично ошибка 1366 связана с тем, что кто то пытается записать символы с кодами не соответствующими кодовой таблице символов, установленной для таблицы в базе данных. Но в нашем случае речь идет о иной проблеме. Drupal использует utf8mb4 для текстовых ...

Читать
 

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

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



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