Airship\Engine\Database::flattenDSN PHP Méthode

flattenDSN() public static méthode

Flatten an array into a DSN string and driver
public static flattenDSN ( array $dbConf, string $username = '', string $password = '' ) : array
$dbConf array
$username string
$password string
Résultat array [$dsn, $driver]
    public static function flattenDSN(array $dbConf, string $username = '', string $password = '') : array
    {
        switch ($dbConf['driver']) {
            case 'mysql':
                $dsn = $dbConf['driver'] . ':';
                if (Util::subString($dbConf['host'], 0, 5) === 'unix:') {
                    $dsn .= 'unix_socket=' . Util::subString($dbConf['host'], 5) . ';';
                } else {
                    $dsn .= 'host=' . $dbConf['host'] . ';';
                }
                if (!empty($dbConf['port'])) {
                    $dsn .= 'port=' . $dbConf['port'] . ';';
                }
                $dsn .= 'dbname=' . $dbConf['database'];
                return [$dsn, $dbConf['driver'], $dbConf['username'] ?? $username, $dbConf['password'] ?? $password];
            case 'pgsql':
                $dsn = $dbConf['driver'] . ':';
                if (isset($dbConf['host'])) {
                    if (Util::subString($dbConf['host'], 0, 5) === 'unix:') {
                        $dsn .= 'unix_socket=' . Util::subString($dbConf['host'], 5) . ';';
                    } else {
                        $dsn .= 'host=' . $dbConf['host'] . ';';
                    }
                }
                if (!empty($dbConf['port'])) {
                    $dsn .= 'port=' . $dbConf['port'] . ';';
                }
                $dsn .= 'dbname=' . $dbConf['database'];
                return [$dsn, $dbConf['driver'], $dbConf['username'] ?? $username, $dbConf['password'] ?? $password];
            case 'sqlite':
                $dsn = $dbConf['driver'] . ':';
                if (isset($dbConf['path'])) {
                    $dsn .= $dbConf['path'];
                } else {
                    $dsn .= ':memory:';
                }
                return [$dsn, $dbConf['driver'], null, null];
            default:
                throw new DBAlert\DBException(\trk('errors.database.not_implemented', (string) $dbConf['driver']));
        }
    }