decodelabs / systemic
Easy access to system and environment info
Installs: 21 394
Dependents: 6
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^8.4
- ext-intl: *
- decodelabs/coercion: ^0.3.5
- decodelabs/deliverance: ^0.3.4
- decodelabs/eventful: ^0.4.5
- decodelabs/exceptional: ^0.6.3
- decodelabs/fluidity: ^0.3.7
- decodelabs/kingdom: ^0.1
- decodelabs/nuance: ^0.1.9
- symfony/polyfill-mbstring: ^1.33
Requires (Dev)
- dev-develop / 0.12.x-dev
- v0.12.0
- v0.11.19
- v0.11.18
- v0.11.17
- v0.11.16
- v0.11.15
- v0.11.14
- v0.11.13
- v0.11.12
- v0.11.11
- v0.11.10
- v0.11.9
- v0.11.8
- v0.11.7
- v0.11.6
- v0.11.5
- v0.11.4
- v0.11.3
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.7
- v0.9.6
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.3
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.13
- v0.6.12
- v0.6.11
- v0.6.10
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- dev-main
This package is auto-updated.
Last update: 2025-08-23 20:42:30 UTC
README
System processes and information at your fingertips
Systemic offers an easy to use frontend to launching and controlling processes and accessing system information.
Installation
Install via composer:
composer require decodelabs/systemic
Usage
Process launching
Launch new processes:
use DecodeLabs\Monarch; use DecodeLabs\Systemic; $systemic = Monarch::getService(Systemic::class); $dir = 'path/to/working-directory'; // Launch and capture output of a process echo $systemic->capture(['ls', '-al'], $dir)->getOutput(); // Launch and capture output of a process with raw string command (not escaped) echo $systemic->capture('ls -al', $dir)->getOutput(); // Launch and capture output of a script echo $systemic->capture(['myPhpScript.php'], $dir)->getOutput(); // Launch a background task $process = $systemic->launch(['make', 'install']); // Launch a background script $process = $systemic->launchScript(['myPhpScript.php'], $dir); // Run a piped pseudo terminal process $success = $systemic->run(['interactive-app', '--arg1'], $dir); // Run a piped pseudo terminal script $success = $systemic->runScript(['myPhpScript.php', '--arg1'], $dir); // Custom escaped command $success = $systemic->command(['escaped', 'arguments']) ->setWorkingDirectory($dir) ->addSignal('SIGSTOP') // Pass SIGSTOP through when caught ->setUser('someuser') // Attempt to use sudo to run as user ->run(); // Custom raw command with env arguments $result = $systemic->command('echo ${:VARIABLE} | unescaped-command', [ 'VARIABLE' => 'Hello world' ]) ->setWorkingDirectory($dir) ->capture();
OS info
Get information about the current OS:
// OS info echo $systemic->os->name; // Linux | Windows | Darwin echo $systemic->os->platformType; // Unix | Windows echo $systemic->os->distribution; // eg Ubuntu or High Sierra, etc echo $systemic->os->version; // System version info echo $systemic->os->release; // System version number echo $systemic->os->hostName; // System hostname // Find binaries on the system echo $systemic->os->which('php'); // eg /usr/local/bin/php
Windows
Please note, OS and Process support on Windows is currently extremely sketchy - this will be fleshed out soon!
Licensing
Systemic is licensed under the MIT License. See LICENSE for the full license text.