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"
Ask your assistant about Dbal connection
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
2 tracked projects depend on this one
- Entity Reference Hierarchy 2,064 sites
- Doctrine Transport for Symfony Messenger + Drupal 4 sites