File: /var/www/payments-gateway/vendor/symfony/maker-bundle/src/Maker/Common/InstallDependencyTrait.php
<?php
/*
* This file is part of the Symfony MakerBundle package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Bundle\MakerBundle\Maker\Common;
use Symfony\Bundle\MakerBundle\ConsoleStyle;
use Symfony\Component\Process\Process;
/**
* @author Jesse Rushlow <jr@rushlow.dev>
*
* @internal
*/
trait InstallDependencyTrait
{
/**
* @param string $composerPackage Fully qualified composer package to install e.g. symfony/maker-bundle
*/
public function installDependencyIfNeeded(ConsoleStyle $io, string $expectedClassToExist, string $composerPackage): ConsoleStyle
{
if (class_exists($expectedClassToExist)) {
return $io;
}
$io->writeln(\sprintf('Running: composer require %s', $composerPackage));
Process::fromShellCommandline(\sprintf('composer require %s', $composerPackage))->run();
$io->writeln(\sprintf('%s successfully installed!', $composerPackage));
$io->newLine();
return $io;
}
}