@@ -106,18 +106,21 @@ private function parseDsn(string $dsn, ?array $config = null): array
106106 {
107107 $ parsedDsn = Dsn::parseFirst ($ dsn );
108108
109+ // enqueue scheme => dbal scheme
110+ // out of the box dbal 4 schemes: pdo_mysql, pdo_sqlite, pdo_pgsql, pdo_oci, oci8, ibm_db2, pdo_sqlsrv, mysqli, pgsql, sqlsrv, sqlite3
111+ // in case of multiple drivers like mysqli vs pdo_mysql the pdo variant is preferred
109112 $ supported = [
110- 'db2 ' => 'db2 ' ,
111- 'ibm-db2 ' => 'ibm-db2 ' ,
112- 'mssql ' => 'mssql ' ,
113+ 'db2 ' => 'ibm_db2 ' ,
114+ 'ibm-db2 ' => 'ibm_db2 ' ,
115+ 'mssql ' => 'pdo_sqlsrv ' ,
113116 'sqlsrv+pdo ' => 'pdo_sqlsrv ' ,
114- 'mysql ' => 'mysql ' ,
115- 'mysql2 ' => 'mysql2 ' ,
117+ 'mysql ' => 'pdo_mysql ' ,
118+ 'mysql2 ' => 'mysqli ' ,
116119 'mysql+pdo ' => 'pdo_mysql ' ,
117120 'pgsql ' => 'pgsql ' ,
118- 'postgres ' => 'postgres ' ,
121+ 'postgres ' => 'pdo_pgsql ' ,
119122 'pgsql+pdo ' => 'pdo_pgsql ' ,
120- 'sqlite ' => 'sqlite ' ,
123+ 'sqlite ' => 'sqlite3 ' ,
121124 'sqlite3 ' => 'sqlite3 ' ,
122125 'sqlite+pdo ' => 'pdo_sqlite ' ,
123126 ];
@@ -148,15 +151,11 @@ private function parseDsn(string $dsn, ?array $config = null): array
148151 $ dsn = $ parsedDsn ->getScheme ().'://root@localhost ' ;
149152 }
150153
151- $ doctrineSupported = [];
152- foreach ($ supported as $ k => $ v ) {
153- $ doctrineSupported [$ this ->prepareDsnForDoctrine ($ k )] = $ this ->prepareDsnForDoctrine ($ v );
154- }
155- $ dsnParser = new DsnParser ($ doctrineSupported );
154+ $ dsnParser = new DsnParser ($ supported );
156155
157156 return [
158157 'lazy ' => true ,
159- 'connection ' => $ dsnParser ->parse ($ this -> prepareDsnForDoctrine ( $ dsn) ),
158+ 'connection ' => $ dsnParser ->parse ($ dsn ),
160159 ];
161160 }
162161
@@ -169,9 +168,4 @@ private function parseDsn(string $dsn, ?array $config = null): array
169168 'connection ' => ['url ' => $ dsn ],
170169 ];
171170 }
172-
173- private function prepareDsnForDoctrine (string $ dsn ): string
174- {
175- return preg_replace ('/^([a-z0-9]+)\+pdo/i ' , 'pdo-$1 ' , $ dsn );
176- }
177171}
0 commit comments