*/ private static array $driverSchemeAliases = [ 'db2' => 'ibm_db2', 'mssql' => 'pdo_sqlsrv', 'mysql' => 'pdo_mysql', 'mysql2' => 'pdo_mysql', // Amazon RDS, for some weird reason 'postgres' => 'pdo_pgsql', 'postgresql' => 'pdo_pgsql', 'pgsql' => 'pdo_pgsql', 'sqlite' => 'pdo_sqlite', 'sqlite3' => 'pdo_sqlite', ]; public function create(): DsnParser { return new DsnParser(self::$driverSchemeAliases); } /** * @return array|bool|AbstractPlatform|int|string> */ public function parse( #[\SensitiveParameter] string $dsn ): array { // see https://github.com/doctrine/dbal/pull/5843 $options = $this->create()->parse($dsn); $options = array_merge( $options, [ 'charset' => 'utf8mb4', 'defaultTableOptions' => [ 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', ] ] ); return $options; } }