addArgument( 'builder-block-class', InputArgument::OPTIONAL, 'Choose a name for your block class (e.g. ExampleBlock)' ) ->setHelp('') ; } public function generate(InputInterface $input, ConsoleStyle $io, Generator $generator) { $blockClassNameDetails = $generator->createClassNameDetails( $input->getArgument('builder-block-class'), 'BuilderBlock\\', 'Block' ); $templatePath = sprintf( 'builder_block/%s.html.twig', Str::asSnakeCase(preg_replace('/Block$/', '', $blockClassNameDetails->getShortName())) ); $options = [ 'entity' => $blockClassNameDetails->getFullName(), 'template' => $templatePath, 'label' => Str::asHumanWords($blockClassNameDetails->getShortName()) ]; $blockPath = $generator->generateController( $blockClassNameDetails->getFullName(), __DIR__.'/../Resources/maker/builder/Block.tpl.php', $options ); $generator->writeChanges(); $realTemplatePath = 'templates/'.$templatePath; $filesystem = new Filesystem(); if (!$filesystem->exists($templatePath)) { $filesystem->mkdir(dirname($realTemplatePath)); $filesystem->dumpFile($realTemplatePath, "{% for item in children %}\n\t{{ item|block_to_html(context) }}\n{% endfor %}\n"); $io->comment(sprintf('created: %s', $realTemplatePath)); } $this->writeSuccessMessage($io); } public function configureDependencies(DependencyBuilder $dependencies) { } }