} catch (\PDOException $e) { $data = ['query' => $sql, 'success' => false, 'offset' => $offset, 'errorMsg' => $e->getMessage()]; $response->body(json_encode($data)); return; } } $data = ['valid' => $dump->valid(), 'offset' => $dump->key(), 'totalCount' => $totalCount, 'success' => true]; $response->body(json_encode($data)); return; })->via('GET', 'POST')->name('applySnippets'); $app->post('/check-database-connection', function () use($container, $app) { $request = $app->request(); $response = $app->response(); $connectionInfo = new DatabaseConnectionInformation(['username' => $request->post('c_database_user'), 'hostname' => $request->post('c_database_host'), 'port' => $request->post('c_database_port'), 'password' => $request->post('c_database_password'), 'socket' => $request->post('c_database_socket')]); try { $databaseFactory = new DatabaseFactory(); $connection = $databaseFactory->createPDOConnection($connectionInfo); } catch (\Exception $e) { $response->header('Content-Type', 'application/json'); $response->status(200); $response->body(json_encode([])); return; } // init db in container $container->offsetSet('db', $connection); /** @var $databaseService DatabaseService */ $databaseService = $container->offsetGet('database.service'); $databaseNames = $databaseService->getAvailableDatabaseNames(); $result = []; foreach ($databaseNames as $databaseName) { $result[] = ['value' => $databaseName, 'display' => $databaseName];
/** * @param DatabaseConnectionInformation $connectionInfo * @param Container $container * @return \PDO */ protected function initDatabaseConnection(DatabaseConnectionInformation $connectionInfo, Container $container) { $databaseFactory = new DatabaseFactory(); $conn = $databaseFactory->createPDOConnection($connectionInfo); $container->offsetSet('db', $conn); return $conn; }