Php Magento 2:如何从另一个CLI命令类运行CLI命令?

Php Magento 2:如何从另一个CLI命令类运行CLI命令?,php,magento,magento2,Php,Magento,Magento2,我正在使用一个自定义CLI命令&我想知道从PHP代码调用其他命令的最佳方式是什么(没有shell_exec()或类似的方式)。 例如: 当运行“php-bin/magento-my:custom:command”时,它将完成它的任务&最后将运行“php-bin/magento-cache:flush”。 有什么想法吗? 谢谢。Magento CLI构建在Symfony控制台之上。您可以使用此组件加载和运行其他命令,例如: $arguments = new ArrayInput(['comma

我正在使用一个自定义CLI命令&我想知道从PHP代码调用其他命令的最佳方式是什么(没有shell_exec()或类似的方式)。
例如:
当运行“php-bin/magento-my:custom:command”时,它将完成它的任务&最后将运行“php-bin/magento-cache:flush”。

有什么想法吗?


谢谢。

Magento CLI构建在Symfony控制台之上。您可以使用此组件加载和运行其他命令,例如:

$arguments = new ArrayInput(['command' => 'my:custom:command']);
$this->getApplication()->find('my:custom:command')->run($arguments, $output);

$arguments = new ArrayInput(['command' => 'cache:flush']);
$this->getApplication()->find('cache:flush')->run($arguments, $output);
更多信息。虽然这对您来说不太可能是个问题,但请注意,文档表明这并不总是最好的主意:

大多数情况下,从未在命令行上执行的代码调用命令不是一个好主意。主要原因是命令的输出针对控制台进行了优化,而不是传递给其他命令


伟大的谢谢:)