我有一个像这样的 Symfony 5 命令:
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
....
protected function execute(InputInterface $input, OutputInterface $output): int
{
$this->input = $input;
$this->output = $output;
$this->io = new SymfonyStyle($input, $output);
....
}
此命令会生成大量带有$this->io->caution(...)
、$this->io->block(....)
等 的输出$this->io->text(....)
。
有时(并非总是:存在一些运行时条件),在执行结束时,我想访问命令生成的整个输出,然后通过电子邮件发送。所以....我怎样才能取回OutputInterface
所显示的一切?有没有一种$this->output->getBuffer()
?
只要我现在仍然可以在标准输出(我的终端)上显示所有内容,我就可以毫无问题OutputInterface $output
地与其他东西(logger ,也许?)交换。