Runtime

composer require php-standard-library/runtime

The Runtime component provides introspection into the PHP runtime environment. It exposes version information, loaded extensions, the active SAPI, and build flags through simple function calls.

Usage

PHP Version

use Psl\IO;
use Psl\Runtime;

$version = Runtime\get_version();
IO\write_line('PHP version: %s', $version);

$id = Runtime\get_version_id();
IO\write_line('Version ID: %d', $id);

$details = Runtime\get_version_details();
IO\write_line('Major: %d, Minor: %d, Release: %d', $details['major'], $details['minor'], $details['release']);

Server API (SAPI)

Determine how PHP is being invoked:

use Psl\IO;
use Psl\Runtime;

$sapi = Runtime\get_sapi();
IO\write_line('SAPI: %s', $sapi);

Extensions

Check for loaded extensions or list them all:

use Psl\IO;
use Psl\Runtime;

if (Runtime\has_extension('mbstring')) {
    IO\write_line('mbstring is available.');
}

$extensions = Runtime\get_extensions();
IO\write_line('Loaded extensions: %d', count($extensions));

$zendExtensions = Runtime\get_zend_extensions();
IO\write_line('Zend extensions: %d', count($zendExtensions));

Zend Engine

use Psl\IO;
use Psl\Runtime;

$zendVersion = Runtime\get_zend_version();
IO\write_line('Zend Engine version: %s', $zendVersion);

Build Flags

use Psl\IO;
use Psl\Runtime;

IO\write_line('Debug build: %s', Runtime\is_debug() ? 'yes' : 'no');
IO\write_line('Thread safe: %s', Runtime\is_thread_safe() ? 'yes' : 'no');

See src/Psl/Runtime/ for the full API.