@@ -115,14 +115,23 @@ private function parseServers(array $servers, array &$out, array &$loginParams)
115115 $ out [$ key ] = [];
116116 $ this ->parseServers ($ value , $ out [$ key ], $ loginParams );
117117 } else {
118+ if (is_string ($ key )) {
119+ $ server = $ key ;
120+ $ name = $ value ;
121+ } else {
122+ $ server = $ value ;
123+ $ name = null ;
124+ }
125+
118126 $ params = [];
119- $ this ->parseServer (is_string ( $ key ) ? $ key : $ value , $ params );
127+ $ this ->parseServer ($ server , $ params );
120128
121129 $ serverKey = $ this ->getServerKey ($ params ["driver " ], $ params ["server " ], $ params ["database " ]);
130+ if (!$ name ) {
131+ $ name = $ this ->getServerName ($ params );
132+ }
122133
123- $ out [$ serverKey ] = "( " . $ this ->formatDriver ($ params ["driver " ]) . ") " .
124- $ params ["server " ] .
125- ($ params ["database " ] ? " » " . $ params ["database " ] : "" );
134+ $ out [$ serverKey ] = "( " . $ this ->formatDriver ($ params ["driver " ]) . ") " . $ name ;
126135
127136 $ loginParams [$ serverKey ] = $ params ;
128137 }
@@ -177,6 +186,25 @@ private function getServerKey($driver, $server, $database)
177186 return $ this ->isSQLite ($ driver ) ? $ server . "# " . $ database : $ server ;
178187 }
179188
189+ /**
190+ * @param array $params
191+ *
192+ * @return string
193+ */
194+ private function getServerName (array $ params )
195+ {
196+ $ name = $ params ["server " ];
197+
198+ if ($ params ["server " ] && $ params ["database " ]) {
199+ $ name .= " » " ;
200+ }
201+ if ($ params ["database " ]) {
202+ $ name .= $ params ["database " ];
203+ }
204+
205+ return $ name ;
206+ }
207+
180208 /**
181209 * @param string $driver
182210 * @return bool
@@ -259,9 +287,9 @@ public function loginForm()
259287 $ count = count ($ this ->loginParams );
260288 $ i = 1 ;
261289 foreach ($ this ->loginParams as $ serverKey => $ params ) {
262- echo " ' $ serverKey' : { 'driver': ' " . $ params ["driver " ] .
263- "' , 'server': ' " . $ params ["server " ] .
264- "' , 'database': ' " . $ params ["database " ] . "' } " ;
290+ echo json_encode ( $ serverKey) . " : { 'driver': " . json_encode ( $ params ["driver " ]) .
291+ ", 'server': " . json_encode ( $ params ["server " ]) .
292+ ", 'database': " . json_encode ( $ params ["database " ]) . " } " ;
265293
266294 if ($ i ++ < $ count ) {
267295 echo ", " ;
0 commit comments