ConnectionPool

Manager that handles opening/retrieving database connections.

It's a facade to the actual Doctrine DBAL DriverManager that implements TYPO3 specific functionality like mapping individual tables to different database connections.

getConnectionForTable() is the only supported way to get a connection that honors the table mapping configuration.

Table of Contents

Constants

DEFAULT_CONNECTION_NAME  : string = 'Default'

Properties

$connections  : Connection[]
$customDoctrineTypes  : array
$driverMap  : string[]
List of custom drivers and their mappings to the driver classes.

Methods

getConnectionByName()  : Connection
Creates a connection object based on the specified identifier.
getConnectionForTable()  : Connection
Creates a connection object based on the specified table name.
getConnectionNames()  : array
Returns an array containing the names of all currently configured connections.
getCustomDoctrineTypes()  : array
Returns the list of custom Doctrine data types implemented by TYPO3.
getQueryBuilderForTable()  : QueryBuilder
Returns the connection specific query builder object that can be used to build complex SQL queries using and object oriented approach.
resetConnections()  : void
Reset internal list of connections.
getDatabaseConnection()  : Connection
Creates a connection object based on the specified parameters
mapCustomDriver()  : array
Map custom driver class for certain driver

Constants

DEFAULT_CONNECTION_NAME

public string DEFAULT_CONNECTION_NAME = 'Default'

Properties

$customDoctrineTypes

protected array $customDoctrineTypes = [\TYPO3\CMS\Core\Database\Schema\Types\EnumType::TYPE => \TYPO3\CMS\Core\Database\Schema\Types\EnumType::class, \TYPO3\CMS\Core\Database\Schema\Types\SetType::TYPE => \TYPO3\CMS\Core\Database\Schema\Types\SetType::class]

$driverMap

List of custom drivers and their mappings to the driver classes.

protected static string[] $driverMap = ['pdo_mysql' => \TYPO3\CMS\Core\Database\Driver\PDOMySql\Driver::class, 'pdo_sqlite' => \TYPO3\CMS\Core\Database\Driver\PDOSqlite\Driver::class, 'pdo_pgsql' => \TYPO3\CMS\Core\Database\Driver\PDOPgSql\Driver::class, 'pdo_sqlsrv' => \TYPO3\CMS\Core\Database\Driver\PDOSqlsrv\Driver::class]

Methods

getConnectionByName()

Creates a connection object based on the specified identifier.

public getConnectionByName(string $connectionName) : Connection

This method should only be used in edge cases. Use getConnectionForTable() so that the tablename<>databaseConnection mapping will be taken into account.

Parameters
$connectionName : string
Tags
throws
Exception
Return values
Connection

getConnectionForTable()

Creates a connection object based on the specified table name.

public getConnectionForTable(string $tableName) : Connection

This is the official entry point to get a database connection to ensure that the mapping of table names to database connections is honored.

Parameters
$tableName : string
Return values
Connection

getConnectionNames()

Returns an array containing the names of all currently configured connections.

public getConnectionNames() : array

This method should only be used in edge cases. Use getConnectionForTable() so that the tablename<>databaseConnection mapping will be taken into account.

Internal
Return values
array

getCustomDoctrineTypes()

Returns the list of custom Doctrine data types implemented by TYPO3.

public getCustomDoctrineTypes() : array

This method is needed by the Schema parser to register the types as it does not require a database connection and thus the types don't get registered automatically.

Internal
Return values
array

getQueryBuilderForTable()

Returns the connection specific query builder object that can be used to build complex SQL queries using and object oriented approach.

public getQueryBuilderForTable(string $tableName) : QueryBuilder
Parameters
$tableName : string
Return values
QueryBuilder

resetConnections()

Reset internal list of connections.

public resetConnections() : void

Currently primarily used in functional tests to close connections and start new ones in between single tests.

getDatabaseConnection()

Creates a connection object based on the specified parameters

protected getDatabaseConnection(array $connectionParams) : Connection
Parameters
$connectionParams : array
Return values
Connection

mapCustomDriver()

Map custom driver class for certain driver

protected mapCustomDriver(array $connectionParams) : array
Parameters
$connectionParams : array
Return values
array
On this page

Search results