/** * @expectedException NotSupportedException */ public function testGetDatabaseDefaultPort() { $mysqlDatabaseDefaultPort = DatabaseCompatibilityUtil::getDatabaseDefaultPort('mysql'); $this->assertEquals(3306, $mysqlDatabaseDefaultPort); $mysqlDatabaseDefaultPort = DatabaseCompatibilityUtil::getDatabaseDefaultPort('pgsql'); }
/** * * @param string $dsn * @throws NotSupportedException * @return multitype:array */ public static function getDatabaseInfoFromDsnString($dsn) { assert(preg_match("/^([^;]+):host=([^;]+);(?:port=([^;]+);)?dbname=([^;]+)/", $dsn, $matches) == 1); // Not Coding Standard if (count($matches) == 5) { if (empty($matches['3'])) { $databaseType = $matches['1']; $databasePort = DatabaseCompatibilityUtil::getDatabaseDefaultPort($databaseType); } else { $databasePort = $matches['3']; } $databaseConnectionInfo = array('databaseType' => $matches['1'], 'databaseHost' => $matches['2'], 'databasePort' => intval($databasePort), 'databaseName' => $matches['4']); return $databaseConnectionInfo; } else { throw new NotSupportedException(); } }