Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64
User : User ( 0)
PHP Version : 7.4.6
Disable Function : NONE
Directory :  C:/xampp/phpMyAdmin/libraries/classes/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : C:/xampp/phpMyAdmin/libraries/classes/SysInfo.php
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Library for extracting information about system memory and cpu.
 * Currently supports all Windows and Linux platforms
 *
 * This code is based on the OS Classes from the phpsysinfo project
 * (https://phpsysinfo.github.io/phpsysinfo/)
 *
 * @package PhpMyAdmin-sysinfo
 */
declare(strict_types=1);

namespace PhpMyAdmin;

use PhpMyAdmin\SysInfoBase;

/**
 * PhpMyAdmin\SysInfo class
 *
 * @package PhpMyAdmin
 */
class SysInfo
{
    public const MEMORY_REGEXP = '/^(MemTotal|MemFree|Cached|Buffers|SwapCached|SwapTotal|SwapFree):\s+(.*)\s*kB/im';

    /**
     * Returns OS type used for sysinfo class
     *
     * @param string $php_os PHP_OS constant
     *
     * @return string
     */
    public static function getOs($php_os = PHP_OS)
    {
        // look for common UNIX-like systems
        $unix_like = [
            'FreeBSD',
            'DragonFly',
        ];
        if (in_array($php_os, $unix_like)) {
            $php_os = 'Linux';
        }

        return ucfirst($php_os);
    }

    /**
     * Gets sysinfo class mathing current OS
     *
     * @return SysInfoBase sysinfo class
     */
    public static function get()
    {
        $php_os = self::getOs();
        $supported = [
            'Linux',
            'WINNT',
            'SunOS',
        ];

        if (in_array($php_os, $supported)) {
            $class_name = 'PhpMyAdmin\SysInfo' . $php_os;
            /** @var SysInfoBase $ret */
            $ret = new $class_name();
            if ($ret->supported()) {
                return $ret;
            }
        }

        return new SysInfoBase();
    }
}