Dbal connection

Component ID

2831628

Component name

Dbal connection

Component type

module

Maintenance status

Development status

Component security advisory coverage

covered

Downloads

595

Component created

Component changed

Component body

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 HoohaWhizzy;

use DoctrineDBALConnection;

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

  /**
   * DBAL connection.
   *
   * @var DoctrineDBALConnection
   */
  protected $connection;

  /**
   * Creates a new Fizzwang object.
   *
   * @param DoctrineDBALConnection $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: HoohaWhizzyFizzwang
    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"