* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\MakerBundle\Maker; use Symfony\Bundle\MakerBundle\ConsoleStyle; use Symfony\Bundle\MakerBundle\DependencyBuilder; use Symfony\Bundle\MakerBundle\MakerInterface; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; /** * Convenient abstract class for makers. */ abstract class AbstractMaker implements MakerInterface { /** * @return void */ public function interact(InputInterface $input, ConsoleStyle $io, Command $command) { } /** * @return void */ protected function writeSuccessMessage(ConsoleStyle $io) { $io->newLine(); $io->writeln(' '); $io->writeln(' Success! '); $io->writeln(' '); $io->newLine(); } /** @param array $dependencies */ protected function addDependencies(array $dependencies, ?string $message = null): string { $dependencyBuilder = new DependencyBuilder(); foreach ($dependencies as $class => $name) { $dependencyBuilder->addClassDependency($class, $name); } return $dependencyBuilder->getMissingPackagesMessage( static::getCommandName(), $message ); } /** * Get the help file contents needed for "setHelp()" of a maker. * * @param string $helpFileName the filename (omit path) of the help file located in config/help/ * e.g. MakeController.txt * * @internal */ final protected function getHelpFileContents(string $helpFileName): string { return file_get_contents(\sprintf('%s/config/help/%s', \dirname(__DIR__, 2), $helpFileName)); } }