public static function exec($binPath = null, $cb = null, $args = null, $env = null)
{
$o = new static();
$data = '';
$o->bind('read', function ($o) use(&$data, $o) {
$data .= $o->readUnlimited();
});
$o->bind('eof', function ($o) use(&$data, $cb) {
$cb($o, $data);
$o->close();
});
$o->execute($binPath, $args, $env);
}