Skip to content

DatabaseDriverRegistry

Process-global registry mapping short driver aliases (e.g.

“eloquent”, “doctrine”, “cycle”) to the Database adapter class that implements them, so databases.xml can say class="eloquent" instead of a fully-qualified class name.

This is a static seam in the same spirit as MiddlewareCatalog and Events: plugins contribute aliases during PluginManager::bootFromConfig() (via PluginRegistrar::databaseDriver()), which runs before any context — and therefore before DatabaseConfigHandler compiles a databases.xml — so aliases are known by the time they’re resolved.

Only pdo ships in core (the one always-available driver). ORM adapters register their own aliases from their plugin.

final class DatabaseDriverRegistry

SourceDatabase/DatabaseDriverRegistry.php
MethodDescription
aliases(): array<string, class-string<Database>>
has(string $alias): boolWhether $alias has been registered as a driver alias.
instantiate(string $classOrAlias): DatabaseResolve and instantiate an adapter.
register(string $alias, class-string<Database> $adapterClass): voidRegister (or override) a driver alias.
reset(): voidTest isolation: restore the built-in aliases only.
resolve(string $classOrAlias): stringResolve an alias to its adapter class.

public static function aliases(): array<string, class-string<Database>>

Returns array``<``string``, ``class-string``<Database>``>

public static function has(string $alias): bool

Whether $alias has been registered as a driver alias.

Fully-qualified class names are not aliases, so this is false for them.

ParameterTypeDescription
$aliasstring

Returns bool

public static function instantiate(string $classOrAlias): Database

Resolve and instantiate an adapter.

Used by callers that build a database outside the compiled config path; the compiled config emits new <FQCN>() with the alias already resolved at compile time.

ParameterTypeDescription
$classOrAliasstring

Returns Database

public static function register(string $alias, class-string<Database> $adapterClass): void

Register (or override) a driver alias.

ParameterTypeDescription
$aliasstring
$adapterClassclass-string``<Database>

public static function reset(): void

Test isolation: restore the built-in aliases only.

public static function resolve(string $classOrAlias): string

Resolve an alias to its adapter class.

A string that is not a registered alias is returned unchanged, so fully-qualified class names in databases.xml pass straight through.

ParameterTypeDescription
$classOrAliasstring

Returns string