Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\CoreBundle\Helper; | |
use Symfony\Bundle\FrameworkBundle\Console\Application; | |
use Symfony\Component\Console\Input\ArrayInput; | |
use Symfony\Component\Console\Output\BufferedOutput; | |
use Symfony\Component\HttpKernel\KernelInterface; | |
class CommandHelper | |
{ | |
public function __construct( | |
private KernelInterface $kernel | |
) { | |
} | |
/** | |
* @param array<int|string> $params | |
*/ | |
public function runCommand(string $name, array $params = []): CommandResponse | |
{ | |
$params = array_merge(['command' => $name], $params); | |
$application = new Application($this->kernel); | |
$application->setAutoExit(false); | |
$input = new ArrayInput($params); | |
$output = new BufferedOutput(); | |
$statusCode = $application->run($input, $output); | |
$message = $output->fetch(); | |
return new CommandResponse($statusCode, $message); | |
} | |
} | |