Provide a real database, safe for testing purposes

2.0.4 2023-11-29 11:49 UTC

This package is auto-updated.

Last update: 2024-04-29 13:13:57 UTC


This package allows you to create throw away test databases. Each connection class will establish a connection to a test database on construction and clean up after itself on destruction.


using composer:

composer require --dev hostnet/database-test-lib

or add manually to your composer.json:

"require-dev" : {
    "hostnet/database-test-lib": "^1.0.0"


use Doctrine\DBAL\DriverManager;
use Hostnet\Component\DatabaseTest\MysqlPersistentConnection;

$connection = new MysqlPersistentConnection();
$params     = $connection->getConnectionParams();
$doctrine   = DriverManager::getConnection($params);
$statement  = $doctrine->executeQuery('SHOW DATABASES');
$databases  = $statement->fetchAll(\PDO::FETCH_COLUMN);

foreach($databases as $database) {
    echo $database . PHP_EOL;

Connection types

At this moment only the MysqlPersistentConnection is available.


This connection will start a mysql daemon on your system under your user and create a database for you to test on. When the connection goes out of scope, the database will be dropped.

The persistent part means that the daemon will keep running afterwards, and will be reused by consecutive connections, even between multiple PHP scripts.

This behaviour is accomplished using bash. This means it will only work on systems supporting bash and having a mysql daemon or drop-in replacement installed. No superuser privileges are required.