You are here

public static function Database::getConnectionInfoAsUrl in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Database/Database.php \Drupal\Core\Database\Database::getConnectionInfoAsUrl()

Gets database connection info as a URL.

Parameters

string $key: (Optional) The database connection key.

Return value

string The connection info as a URL.

Throws

\RuntimeException When the database connection is not defined.

5 calls to Database::getConnectionInfoAsUrl()
DbCommandBaseTest::testPrefix in core/modules/system/tests/src/Kernel/Scripts/DbCommandBaseTest.php
Tests specifying a prefix for different connections.
DbCommandBaseTest::testSpecifyDbUrl in core/modules/system/tests/src/Kernel/Scripts/DbCommandBaseTest.php
Tests supplying database connection as a url.
PhpUnitTestRunner::runCommand in core/lib/Drupal/Core/Test/PhpUnitTestRunner.php
Executes the PHPUnit command.
UrlConversionTest::testGetConnectionInfoAsUrl in core/tests/Drupal/Tests/Core/Database/UrlConversionTest.php
@covers ::getConnectionInfoAsUrl
UrlConversionTest::testGetInvalidArgumentGetConnectionInfoAsUrl in core/tests/Drupal/Tests/Core/Database/UrlConversionTest.php
Tests ::getConnectionInfoAsUrl() exception for invalid arguments.

File

core/lib/Drupal/Core/Database/Database.php, line 605

Class

Database
Primary front-controller for the database system.

Namespace

Drupal\Core\Database

Code

public static function getConnectionInfoAsUrl($key = 'default') {
  $db_info = static::getConnectionInfo($key);
  if (empty($db_info) || empty($db_info['default'])) {
    throw new \RuntimeException("Database connection {$key} not defined or missing the 'default' settings");
  }
  $namespace = $db_info['default']['namespace'];

  // If the driver namespace is within a Drupal module, add the module name
  // to the connection options to make it easy for the connection class's
  // createUrlFromConnectionOptions() method to add it to the URL.
  if (static::isWithinModuleNamespace($namespace)) {
    $db_info['default']['module'] = explode('\\', $namespace)[1];
  }
  $connection_class = $namespace . '\\Connection';
  return $connection_class::createUrlFromConnectionOptions($db_info['default']);
}