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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подготовка строки для использования в качестве имени html класса

Январь 18, 2022 г.

То, что в семерке выполняется функцией drupal_html_class(), в Drupal 8 реализовано в виде статического метода\Drupal\Component\Utility\Html::getClass($str). Данная функция также востребована в шаблонах (twig). Здесь вы можете использовать фильтр ...

Читать

Настраиваем стили в CKEditor / Drupal 9

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

Чтобы расширить инструментарий контентщика, обычно в редактор добавляются новые стили. Это позволяет контент-менеджеру на ряду с форматированием, использовать ...

Читать

Устанавливаем флажок FILE_STATUS_PERMANENT для файла в DRUPAL 9

Август 7, 2021 г.

Если файл загружен через поле, созданное в конструкторе полей какого либо entity Drupal, то соответствующий модуль, предоставляющий функционал загрузки файла, сам обеспечит установку необходимого статуса. Что если поле было создано программно, и требуется ...

Читать

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

Июль 27, 2021 г.

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

Читать
 

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

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



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