FastSitePHP\Environment\System

System and OS Info

Código Fonte

GitHub

Código de Exemplo

Obtém Informações de Ambiente e Sistema

// Cria um Objeto do Sistema de Ambiente
$sys = new \FastSitePHP\Environment\System();

// Obtém um array de informações básicas relacionadas ao Sistema Operacional
// [ 'OS Type', 'Version Info', 'Release Version', 'Host Name', 'CPU Type' ]
$os_info = $sys->osVersionInfo();

// Obtém uma string de texto de informações detalhadas do sistema utilizando
// um dos seguintes comandos:
// - Linux   = File: '/etc/os-release'
// - FreeBSD = uname -mrs
// - IBM AIX = uname -a
// - Mac     = system_profiler SPSoftwareDataType SPHardwareDataType
// - Windows = ver
$info = $sys->systemInfo();

// Obtém um array de informações relacionado espaço livre, usado e total
// para um drive do sistema de arquivos ou partição do disco. Esta função
// permite que drives específicos ou partições sejam especificadas.
// - *nix    = $sys->diskSpace('/dev/disk0')
// - Windows = $sys->diskSpace('C:')
$disk_space = $sys->diskSpace();

// Função somente de Windows que retorna um array de letras de unidades
// mapeadas para o servidor. Retorna um array vazio para outros SOs.
$mapped_drives = $sys->mappedDrives();

Métodos

osVersionInfo()

Returns an array of basic information related to the Operating System. This typically includes human readable information such as the OS Version. On some older UNIX platforms this function may instead return the OS that PHP was built on but this is not expected on Windows, Linux, or Mac.

For detailed system information see the function [systemInfo()] in this class. See also [\FastSitePHP\Net\Config->fqdn()]

Keys in the Returned Array:
    [ 'OS Type', 'Version Info', 'Release Version', 'Host Name', 'CPU Type' ]

Retorna: array

systemInfo()

Return a string of System Info from the OS. If System info can't be determined then null will be returned. This function works with various OS's including Windows, Mac, and recent versions of Linux. It runs the following commands:

    Linux:   cat /etc/os-release
    Windows: ver
    Mac:     system_profiler SPHardwareDataType SPSoftwareDataType
    FreeBSD: uname -mrs
    IBM AIX: uname -a

If running on Linux and the file [/etc/os-release] doesn't exist system info can possibly be obtained from one of the following commands:

    lsb_release -a
    cat /etc/*-release
    cat /etc/*_version

On Windows detailed info may be obtained by using the command [systeminfo] instead however calling [systeminfo] often takes 10 - 30 seconds to run.

FreeBSD also supports the command [freebsd-version] which will likely include the same info as this function.

For IBM iSeries (AS/400) Newer versions of the OS inlude commands [lscfg, oslevel, prtconf] however often the OS is not updated so this function simply returns [uname -a].

Retorna: string | null

diskSpace($drive = null)

Return an array of information related to free, used, and total space for a filesystem drive or disk partition. The returned values include the size calculated in Bytes, Megabytes, Gigabytes, and Percent. If this function is called with no parameters then the default drive or disk will be used. To get info for specific drive call this function with the disk partition (Mac, Linux) or Drive Letter (Windows), for example '/dev/disk0' or 'D:'. Internally this function uses PHP functions [disk_free_space()] and [disk_total_space()].

Keys in the Returned Array:
  [ 'Drive',
    'Free Space Bytes', 'Free Space MB', 'Free Space GB', 'Free Space Percent',
    'Used Space Bytes', 'Used Space MB', 'Used Space GB', 'Used Space Percent',
    'Total Space Bytes', 'Total Space MB', 'Total Space GB' ]

Retorna: array

mappedDrives()

Windows only function that returns an array of drive letters mapped to the server. For example if the server running PHP has drives C, D, and Z mapped then this function will return array('C:', 'D:', 'Z:'). I this function is called from a Non-Windows computer then an empty array will be returned.

Retorna: array