Inheritance: extends Symfony\Component\Console\Helper\DialogHelper
Example #1
0
 protected function updateRouting(DialogHelper $dialog, InputInterface $input, OutputInterface $output, $bundle, $format = 'yml')
 {
     $auto = true;
     $this->route = '/';
     if ($input->isInteractive()) {
         $auto = $dialog->askConfirmation($output, $dialog->getQuestion('Confirm automatic update of the Routing', 'yes', '?'), true);
         if ($auto) {
             $this->route = $dialog->askAndValidate($output, 'Route prefix [length > 3]: ', function ($x) {
                 if (strlen($x) < 3) {
                     return false;
                 }
                 if ($x[0] != '/') {
                     $x = $x = '/' . $x;
                 }
                 return $x;
             });
         }
     }
     $output->write('Importing the bundle routing resource: ');
     $routing = new RoutingManipulator($this->getContainer()->getParameter('kernel.root_dir') . '/config/routing.yml');
     try {
         $ret = $auto ? $routing->addResource($bundle, $format, $this->route) : false;
         if (!$ret) {
             if ('annotation' === $format) {
                 $help = sprintf("        <comment>resource: \"@%s/Controller/\"</comment>\n        <comment>type:     annotation</comment>\n", $bundle);
             } else {
                 $help = sprintf("        <comment>resource: \"@%s/Resources/config/routing.%s\"</comment>\n", $bundle, $format);
             }
             $help .= "        <comment>prefix:   /</comment>\n";
             return ['- Import the bundle\'s routing resource in the app main routing file:', '', sprintf('    <comment>%s:</comment>', $bundle), $help, ''];
         }
     } catch (\RuntimeException $e) {
         return [sprintf('Bundle <comment>%s</comment> is already imported.', $bundle), ''];
     }
 }