Execution wrapper is extension implements execution of external application in OOP way. Also allows to add listener before and after execution.
Add exec-wrapper to your Composer project:
composer require ivol/exec-wrapper
It is really simple:
<php>
// Autoload here
use ivol/ExecutionWrapper;
$wrapper = new ExecutionWrapper();
$result = $wrapper->execute('echo %s', ['123']);
if ($result->getReturnCode() == 0) {
echo('Success');
} else {
echo('Failure');
}
echo($result->getOutput());
</php>
If you want to use Event System then you should configure event dispatcher:
...
$dispatcher = $wrapper->getEventDispatcher();
$dispatcher->addSubscriber(...);
$dispatcher->addListener(...);
...
For more information about event dispatcher see The EventDispatcher Component.
For additional examples see ExecutionWrapperIntegrationTest.
You can configure behaviour of args and command escaping by passing config array to ExecWrapper.
For configuration option names please see ExecWrapperConfiguration.
exec-wrapper is released under the MIT License.