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  = 'Default'

Properties

$connections  : array<string|int, Connection>
$customDoctrineTypes  : array<non-empty-string, class-string>
$driverMap  : array<string|int, string>
List of custom drivers and their mappings to the driver classes.
$overrideDoctrineTypes  : array<non-empty-string, class-string>

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<string|int, mixed>
Returns an array containing the names of all currently configured connections.
getQueryBuilderForTable()  : QueryBuilder
Returns the connection specific query builder object that can be used to build complex SQL queries using and object oriented approach.
registerDoctrineTypes()  : void
Register custom and override Doctrine data types implemented by TYPO3.
resetConnections()  : void
Reset internal list of connections.
getDatabaseConnection()  : Connection
Creates a connection object based on the specified parameters
getDriverMiddlewares()  : array<string|int, mixed>
Return any doctrine driver middlewares, that may have been set up in: $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['driverMiddlewares']
mapCustomDriver()  : array<string|int, mixed>
Map custom driver class for certain driver

Constants

DEFAULT_CONNECTION_NAME

public string DEFAULT_CONNECTION_NAME = 'Default'

Properties

$customDoctrineTypes

protected array<non-empty-string, class-string> $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 array<string|int, 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]

$overrideDoctrineTypes

protected array<non-empty-string, class-string> $overrideDoctrineTypes = [\Doctrine\DBAL\Types\Types::DATE_MUTABLE => \TYPO3\CMS\Core\Database\Schema\Types\DateType::class, \Doctrine\DBAL\Types\Types::DATETIME_MUTABLE => \TYPO3\CMS\Core\Database\Schema\Types\DateTimeType::class, \Doctrine\DBAL\Types\Types::DATETIME_IMMUTABLE => \TYPO3\CMS\Core\Database\Schema\Types\DateTimeType::class, \Doctrine\DBAL\Types\Types::TIME_MUTABLE => \TYPO3\CMS\Core\Database\Schema\Types\TimeType::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<string|int, mixed>

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<string|int, mixed>

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

registerDoctrineTypes()

Register custom and override Doctrine data types implemented by TYPO3.

public registerDoctrineTypes() : void

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

Internal

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<string|int, mixed> $connectionParams) : Connection
Parameters
$connectionParams : array<string|int, mixed>
Return values
Connection

getDriverMiddlewares()

Return any doctrine driver middlewares, that may have been set up in: $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['driverMiddlewares']

protected getDriverMiddlewares(array<string|int, mixed> $connectionParams) : array<string|int, mixed>
Parameters
$connectionParams : array<string|int, mixed>
Return values
array<string|int, mixed>

mapCustomDriver()

Map custom driver class for certain driver

protected mapCustomDriver(array<string|int, mixed> $connectionParams) : array<string|int, mixed>
Parameters
$connectionParams : array<string|int, mixed>
Internal
Return values
array<string|int, mixed>

        
On this page

Search results