gpt4 book ai didi

php - 从辅助类将输出写入控制台

转载 作者:行者123 更新时间:2023-12-02 01:25:01 24 4
gpt4 key购买 nike

我有一个运行辅助类的控制台命令,我想使用 $this->info() 将辅助类的输出写入控制台。

我的代码是这样的:

App/Http/Console/Commands/SomeCommand.php

function handle(Helper $helper)
{
return $helper->somefunction();
}

App/Http/SomeHelper.php

function somefunction()
{
//some code
$this->info('send to console');
}

有什么方法可以将输出从助手写入控制台吗?

最佳答案

我终于弄明白了(适用于 Laravel 5.6)

SomeCommand 类的 handle() 函数中,添加 $this->myHelper->setConsoleOutput($this->getOutput());

在你的助手类中,添加:

/**
*
* @var \Symfony\Component\Console\Style\OutputStyle
*/
protected $consoleOutput;

/**
*
* @param \Symfony\Component\Console\Style\OutputStyle $consoleOutput
* @return $this
*/
public function setConsoleOutput($consoleOutput) {
$this->consoleOutput = $consoleOutput;
return $this;
}

/**
*
* @param string $text
* @return $this
*/
public function writeToOuput($text) {
if ($this->consoleOutput) {
$this->consoleOutput->writeln($text);
}
return $this;
}

/**
*
* @param string $text
* @return $this
*/
public function writeErrorToOuput($text) {
if ($this->consoleOutput) {
$style = new \Symfony\Component\Console\Formatter\OutputFormatterStyle('white', 'red', ['bold']); //white text on red background
$this->consoleOutput->getFormatter()->setStyle('error', $style);
$this->consoleOutput->writeln('<error>' . $text . '</error>');
}
return $this;
}

然后,在您的助手类中的任何其他地方,您可以使用:

$this->writeToOuput('Here is a string that I want to show in the console.');

关于php - 从辅助类将输出写入控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com