/**
* @param IndexedServiceContainer $container
*/
private function setupRerunner(IndexedServiceContainer $container)
{
$container->define('process.rerunner', function (IndexedServiceContainer $c) {
return new ReRunner\OptionalReRunner($c->get('process.rerunner.platformspecific'), $c->get('console.io'));
});
if ($container->has('process.rerunner.platformspecific')) {
return;
}
$container->define('process.rerunner.platformspecific', function (IndexedServiceContainer $c) {
return new ReRunner\CompositeReRunner($c->getByTag('process.rerunner.platformspecific'));
});
$container->define('process.rerunner.platformspecific.pcntl', function (IndexedServiceContainer $c) {
return ReRunner\PcntlReRunner::withExecutionContext($c->get('process.phpexecutablefinder'), $c->get('process.executioncontext'));
}, ['process.rerunner.platformspecific']);
$container->define('process.rerunner.platformspecific.passthru', function (IndexedServiceContainer $c) {
return ReRunner\ProcOpenReRunner::withExecutionContext($c->get('process.phpexecutablefinder'), $c->get('process.executioncontext'));
}, ['process.rerunner.platformspecific']);
$container->define('process.rerunner.platformspecific.windowspassthru', function (IndexedServiceContainer $c) {
return ReRunner\WindowsPassthruReRunner::withExecutionContext($c->get('process.phpexecutablefinder'), $c->get('process.executioncontext'));
}, ['process.rerunner.platformspecific']);
$container->define('process.phpexecutablefinder', function () {
return new PhpExecutableFinder();
});
}