Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Dbal connection

1,945 sites Security covered
View on drupal.org

This module provides a factory service to inject Doctrine DBAL database connections into your services, allowing Composer libraries that require a DBAL connection to work seamlessly with Drupal. It also allows you to connect to databases other than the default one.

About

If you are using a composer library that needs a DBAL connection, this module provides a factory service that lets you inject that into your services.

e.g.


namespace Hooha\Whizzy;

use Doctrine\DBAL\Connection;

/**
 * Provides just enough fizzwang and not a scrap more.
 */
class Fizzwang {

  /**
   * DBAL connection.
   *
   * @var \Doctrine\DBAL\Connection
   */
  protected $connection;

  /**
   * Creates a new Fizzwang object.
   *
   * @param \Doctrine\DBAL\Connection $connection
   *   A DBAL connection.
   */
  public function __construct(Connection $connection) {
     $this->connection = $connection;
  }
  // ...
}

Then you can achieve this by using the @dbal_connection service in your services.yml file.

services:
  hooha.fizzwang:
    class: \Hooha\Whizzy\Fizzwang
    arguments: ['@dbal_connection']

To connect to other than the default database, define your own service like so (connects to $databases['migrate']:

services:
  dbal_connection.migrate:
    factory: dbal_connection_factory:get
    arguments: ['migrate']

Known issues

Please note that table-prefixing isn't supported by DBAL, so you will need to make sure that your tests only write to the prefixed table ($this->getDatabasePrefix()) and not the base installation.
Please use the issue queue to report any problems.

Installation

You must use composer to install this module
composer require "drupal/dbal"

Activity

Total releases
1
First release
Nov 2025
Latest release
8 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Slowing

Releases

Version Type Release date
2.0.3 Stable Nov 13, 2025