Sentry/Client.php
static function parseDSN($dsn)
    {
        $url = parse_url($dsn);
        $scheme = (isset($url['scheme']) ? $url['scheme'] : '');
        if (!in_array($scheme, array('http', 'https'))) {
            throw new \InvalidArgumentException('Unsupported Sentry DSN scheme: ' . (!empty($scheme) ? $scheme : '<not set>'));
        }
        $netloc = (isset($url['host']) ? $url['host'] : null);
        $netloc.= (isset($url['port']) ? ':'.$url['port'] : null);
        $rawpath = (isset($url['path']) ? $url['path'] : null);
        if ($rawpath) {
            $pos = strrpos($rawpath, '/', 1);
            if ($pos !== false) {
                $path = substr($rawpath, 0, $pos);
                $project = substr($rawpath, $pos + 1);
            } else {
                $path = '';
                $project = substr($rawpath, 1);
            }
        } else {
            $project = null;
            $path = '';
        }
        $username = (isset($url['user']) ? $url['user'] : null);
        $password = (isset($url['pass']) ? $url['pass'] : null);
        if (empty($netloc) || empty($project) || empty($username) || empty($password)) {
            throw new \InvalidArgumentException('Invalid Sentry DSN: ' . $dsn);
        }

        return array(
            'server'     => sprintf('%s://%s%s/api/%s/store/', $scheme, $netloc, $path, $project),
            'project'    => $project,
            'public_key' => $username,
            'secret_key' => $password,
        );
    }
static function parseDSN($dsn)
    {
        $url = parse_url($dsn);
        $scheme = (isset($url['scheme']) ? $url['scheme'] : '');
        if (!in_array($scheme, array('http', 'https'))) {
            throw new \InvalidArgumentException('Unsupported Sentry DSN scheme: ' . (!empty($scheme) ? $scheme : '<not set>'));
        }
        $netloc = (isset($url['host']) ? $url['host'] : null);
        $netloc.= (isset($url['port']) ? ':'.$url['port'] : null);
        $rawpath = (isset($url['path']) ? $url['path'] : null);
        if ($rawpath) {
            $pos = strrpos($rawpath, '/', 1);
            if ($pos !== false) {
                $path = substr($rawpath, 0, $pos);
                $project = substr($rawpath, $pos + 1);
            } else {
                $path = '';
                $project = substr($rawpath, 1);
            }
        } else {
            $project = null;
            $path = '';
        }
        $username = (isset($url['user']) ? $url['user'] : null);
        $password = (isset($url['pass']) ? $url['pass'] : null);
        if (empty($netloc) || empty($project) || empty($username) || empty($password)) {
            throw new \InvalidArgumentException('Invalid Sentry DSN: ' . $dsn);
        }

        return array(
            'server'     => sprintf('%s://%s%s/api/%s/store/', $scheme, $netloc, $path, $project),
            'project'    => $project,
            'public_key' => $username,
            'secret_key' => $password,
        );
    }
static function parseDSN ( $ dsn ) { $ url = parse_url ( $ dsn ) ; $ scheme = ( isset ( $ url [ 'scheme' ] ) ? $ url [ 'scheme' ] : '' ) ; if ( ! in_array ( $ scheme , array ( 'http' , 'https' ) ) ) { throw new \ InvalidArgumentException ( 'Unsupported Sentry DSN scheme: ' . ( ! empty ( $ scheme ) ? $ scheme : '<not set>' ) ) ; } $ netloc = ( isset ( $ url [ 'host' ] ) ? $ url [ 'host' ] : null ) ; $ netloc .= ( isset ( $ url [ 'port' ] ) ? ':' . $ url [ 'port' ] : null ) ; $ rawpath = ( isset ( $ url [ 'path' ] ) ? $ url [ 'path' ] : null ) ; if ( $ rawpath ) { $ pos = strrpos ( $ rawpath , '/' , 1 ) ; if ( $ pos !== false ) { $ path = substr ( $ rawpath , 0 , $ pos ) ; $ project = substr ( $ rawpath , $ pos + 1 ) ; } else { $ path = '' ; $ project = substr ( $ rawpath , 1 ) ; } } else { $ project = null ; $ path = '' ; } $ username = ( isset ( $ url [ 'user' ] ) ? $ url [ 'user' ] : null ) ; $ password = ( isset ( $ url [ 'pass' ] ) ? $ url [ 'pass' ] : null ) ; if ( empty ( $ netloc ) || empty ( $ project ) || empty ( $ username ) || empty ( $ password ) ) { throw new \ InvalidArgumentException ( 'Invalid Sentry DSN: ' . $ dsn ) ; } return array ( 'server' => sprintf ( '%s://%s%s/api/%s/store/' , $ scheme , $ netloc , $ path , $ project ) , 'project' => $ project , 'public_key' => $ username , 'secret_key' => $ password , ) ; }
Parses a Raven-compatible DSN and returns an array of its values.

@param string    $dsn    Raven compatible DSN: http://raven.readthedocs.org/en/latest/config/#the-sentry-dsn
@return array            parsed DSN
Parses a Raven - compatible DSN and returns an array of its values .