dbal
1,669 sites
Security covered
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"