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.
Synopsis
Section titled “Synopsis”final class DatabaseDriverRegistry
| Source | Database/DatabaseDriverRegistry.php |
Methods
Section titled “Methods”| Method | Description |
|---|---|
aliases(): array<string, class-string<Database>> | |
has(string $alias): bool | Whether $alias has been registered as a driver alias. |
instantiate(string $classOrAlias): Database | Resolve and instantiate an adapter. |
register(string $alias, class-string<Database> $adapterClass): void | Register (or override) a driver alias. |
reset(): void | Test isolation: restore the built-in aliases only. |
resolve(string $classOrAlias): string | Resolve an alias to its adapter class. |
aliases()
Section titled “aliases()”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.
| Parameter | Type | Description |
|---|---|---|
$alias | string |
Returns bool
instantiate()
Section titled “instantiate()”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.
| Parameter | Type | Description |
|---|---|---|
$classOrAlias | string |
Returns Database
register()
Section titled “register()”public static function register(string $alias, class-string<Database> $adapterClass): void
Register (or override) a driver alias.
| Parameter | Type | Description |
|---|---|---|
$alias | string | |
$adapterClass | class-string``<Database> |
reset()
Section titled “reset()”public static function reset(): void
Test isolation: restore the built-in aliases only.
resolve()
Section titled “resolve()”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.
| Parameter | Type | Description |
|---|---|---|
$classOrAlias | string |
Returns string