Contao\Environment::agent PHP Method

agent() protected static method

Return the operating system and the browser name and version
protected static agent ( ) : object
return object The agent information
    protected static function agent()
    {
        $ua = static::get('httpUserAgent');
        $return = new \stdClass();
        $return->string = $ua;
        $os = 'unknown';
        $mobile = false;
        $browser = 'other';
        $shorty = '';
        $version = '';
        $engine = '';
        // Operating system
        foreach (\Config::get('os') as $k => $v) {
            if (stripos($ua, $k) !== false) {
                $os = $v['os'];
                $mobile = $v['mobile'];
                break;
            }
        }
        $return->os = $os;
        // Browser and version
        foreach (\Config::get('browser') as $k => $v) {
            if (stripos($ua, $k) !== false) {
                $browser = $v['browser'];
                $shorty = $v['shorty'];
                $version = preg_replace($v['version'], '$1', $ua);
                $engine = $v['engine'];
                break;
            }
        }
        $versions = explode('.', $version);
        $version = $versions[0];
        $return->class = $os . ' ' . $browser . ' ' . $engine;
        // Add the version number if available
        if ($version != '') {
            $return->class .= ' ' . $shorty . $version;
        }
        // Android tablets are not mobile (see #4150 and #5869)
        if ($os == 'android' && $engine != 'presto' && stripos($ua, 'mobile') === false) {
            $mobile = false;
        }
        // Mark mobile devices
        if ($mobile) {
            $return->class .= ' mobile';
        }
        $return->browser = $browser;
        $return->shorty = $shorty;
        $return->version = $version;
        $return->engine = $engine;
        $return->versions = $versions;
        $return->mobile = $mobile;
        return $return;
    }