You can do like this:
<?php
namespace App\Http\Controllers;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
class Controller
{
protected function index()
{
$command = "~/.composer/vendor/bin/envoy run deploy --some=param";
$directory = base_path();
$process = new Process($command);
$process->setTimeout(3600);
$process->setIdleTimeout(300);
$process->setWorkingDirectory($directory);
try {
$process->mustRun();
print $process->getOutput();
} catch (ProcessFailedException $e) {
print $e->getMessage();
}
}
}
More help to be found here: https://github.com/symfony/Process http://symfony.com/doc/current/components/process.html