Dbal connection
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"
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
1 tracked project depends on this one
- Entity Reference Hierarchy 1,941 sites
Activity
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 2.0.3 | Stable | 8–11 | The one with support for init commands | Nov 13, 2025 |