1. Go to this page and download the library: Download symplely/processor library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
symplely / processor example snippets
use Async\Processor\Processor;
// To set the path to PHP executable for child process
Processor::phpPath('/some/path/version-7.3/bin/php');
$process = \spawn($function, $timeout, $channel)
// Or
$process = Processor::create(function () use ($thing) {
// Do a thing
}, $timeout, $channel)
->then(function ($output) {
// Handle success
})->catch(function (\Throwable $exception) {
// Handle exception
});
\spawn_run($process);
// Or
$process->run();
// Second option can be used to set to display child output, default is false
\spawn_run($process, true);
// Or
$process->displayOn()->run();
use Async\Processor\Channel;
use Async\Processor\ChannelInterface;
$ipc = new Channel();
$process = spawn(function (ChannelInterface $channel) {
$channel->write('ping'); // same as echo 'ping' or echo fwrite(STDOUT, 'ping')
usleep(1000);
echo $channel->read(); // same as echo fgets(STDIN);
echo $channel->read();
usleep(1000);
return 'return whatever';
}, 300, $ipc)
->progress(function ($type, $data) use ($ipc) {
if ('ping' === $data) {
$ipc->send('pang' . \PHP_EOL);
} elseif (!$ipc->isClosed()) {
$ipc->send('pong' . \PHP_EOL);
->close();
}
});
$ipc->setup($process)
\spawn_run($process);
echo \spawn_output($process); // pingpangpongreturn whatever
// Or
echo $ipc->receive(); // return whatever
$process = spawn($function, $timeout, $channel)
// Or
$process = Processor::create(function () {
// The second argument is optional, Defaults 300.
// it sets The maximum amount of time a process may take to finish in seconds
// The third is optional input pipe to pass to subprocess
}, int $timeout = 300 , $input = null)
->then(function ($output) {
// On success, `$output` is returned by the process.
})
->catch(function ($exception) {
// When an exception is thrown from within a process, it's caught and passed here.
})
->timeout(function () {
// When an time is reached, it's caught and passed here.
})
->progress(function ($type, $data) {
// A IPC like gateway: `$type, $data` is returned by the process progressing, it's producing output.
// This can be use as a IPC handler for real time interaction.
});
->done(function ($result) {
// On success, `$result` is returned by the process or callable you passed to the queue.
});
->then(function ($resultOutput) {
//
}, function ($catchException) {
//
}, function ($progressOutput) {
//
}
);
// To turn on to display child output.
->displayOn();
// Stop displaying child output.
->displayOff();
// To display child output, only by third party means once turned on.
->display();
// Processes can be retried.
->restart();
->run();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.