diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php index e50b7493308db..090435bc439be 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php @@ -19,6 +19,7 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Workflow\Definition; use Symfony\Component\Workflow\Dumper\GraphvizDumper; use Symfony\Component\Workflow\Dumper\MermaidDumper; use Symfony\Component\Workflow\Dumper\PlantUmlDumper; @@ -34,6 +35,10 @@ class WorkflowDumpCommand extends Command { protected static $defaultName = 'workflow:dump'; protected static $defaultDescription = 'Dump a workflow'; + /** + * string is the service id + * @var array + */ private $workflows = []; private const DUMP_FORMAT_OPTIONS = [ @@ -79,13 +84,21 @@ protected function configure() */ protected function execute(InputInterface $input, OutputInterface $output): int { - $workflowId = $input->getArgument('name'); + $workflowName = $input->getArgument('name'); + + $workflow = null; - if (!\in_array($workflowId, array_keys($this->workflows), true)) { - throw new InvalidArgumentException(sprintf('No service found for "workflow.%1$s" nor "state_machine.%1$s".', $workflowId)); + if (isset($this->workflows['workflow.'.$workflowName])) { + $workflow = $this->workflows['workflow.'.$workflowName]; + $type = 'workflow'; + } elseif (isset($this->workflows['state_machine.'.$workflowName])) { + $workflow = $this->workflows['state_machine.'.$workflowName]; + $type = 'state_machine'; } - $type = explode('.', $workflowId)[0]; + if (null === $workflow) { + throw new InvalidArgumentException(sprintf('No service found for "workflow.%1$s" nor "state_machine.%1$s".', $workflowName)); + } switch ($input->getOption('dump-format')) { case 'puml': @@ -109,10 +122,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int $marking->mark($place); } - $workflow = $this->workflows[$workflowId]; - $options = [ - 'name' => $workflowId, + 'name' => $workflowName, 'nofooter' => true, 'graph' => [ 'label' => $input->getOption('label'),