Clue\React\Redis\Factory::parseUrl PHP Method

parseUrl() private method

private parseUrl ( string | null $target ) : array
$target string | null
return array with keys host, port, auth and db
    private function parseUrl($target)
    {
        if ($target === null) {
            $target = 'tcp://127.0.0.1';
        }
        if (strpos($target, '://') === false) {
            $target = 'tcp://' . $target;
        }
        $parts = parse_url($target);
        if ($parts === false || !isset($parts['host']) || $parts['scheme'] !== 'tcp') {
            throw new InvalidArgumentException('Given URL can not be parsed');
        }
        if (!isset($parts['port'])) {
            $parts['port'] = 6379;
        }
        if ($parts['host'] === 'localhost') {
            $parts['host'] = '127.0.0.1';
        }
        $auth = null;
        if (isset($parts['user'])) {
            $auth = $parts['user'];
        }
        if (isset($parts['pass'])) {
            $auth .= ':' . $parts['pass'];
        }
        if ($auth !== null) {
            $parts['auth'] = $auth;
        }
        if (isset($parts['path']) && $parts['path'] !== '') {
            // skip first slash
            $parts['db'] = substr($parts['path'], 1);
        }
        unset($parts['scheme'], $parts['user'], $parts['pass'], $parts['path']);
        return $parts;
    }