Execute a command and provides a much greater degree of control over the program execution.
- PHP >= 5.3.0
use composer composer.json:
"require": {
"cloudmario/yeah": "dev-master"
}
- Simple
$p = new Yeah("/bin/bash");
list($pid, $stdin, $stdout, $stderr) = array($p->pid(), $p->stdin(), $p->stdout(), $p->stderr());
fwrite($stdin, "echo 42.out\n");
fwrite($stdin, "echo 42.err 1>&2\n");
fclose($stdin);
echo "pid : " . $pid."\n";
echo "stdout : " . trim(fread($stdout, 1024)) . "\n";
echo "stderr : " . trim(fread($stderr, 1024)) . "\n";
echo "status : " . trim(print_r($p->status(), true)) . "\n";
- Block
$status = Yeah::yeah("/bin/bash", function($pid, $stdin, $stdout, $stderr) {
fwrite($stdin, "echo 42.out\n");
fwrite($stdin, "echo 42.err 1>&2\n");
fclose($stdin);
echo "pid : " . $pid . "\n";
echo "stdout : " . trim(fread($stdout, 1024)) . "\n";
echo "stderr : " . trim(fread($stderr, 1024)) . "\n";
/*
while ( !feof($stdout) ) {
$out .= fgets($stdout, 2048);
}
*/
});
echo "status : " . trim(print_r($status, true)) . "\n";