从助手 class 将输出写入控制台
Write output to console from helper class
我有一个运行助手 class 的控制台命令,我想将带有 $this->info()
的输出从助手 class.
写入控制台
我的代码如下所示:
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');
}
有什么方法可以将助手的输出写入控制台吗?
我没试过,但也许:$this->line("sent to console');
你需要在 SomeCommand.php 中写 $this->info('send to console');
file.For 按照这个 https://laravel.com/docs/5.2/artisan#writing-output
写输出
我终于弄明白了(在 Laravel 5.6 中有效)
在 SomeCommand class 的 handle()
函数中,添加 $this->myHelper->setConsoleOutput($this->getOutput());
.
在您的助手 class 中,添加:
/**
*
* @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;
}
然后,在您的助手 class 的其他任何地方,您可以使用:
$this->writeToOuput('Here is a string that I want to show in the console.');
我有一个运行助手 class 的控制台命令,我想将带有 $this->info()
的输出从助手 class.
我的代码如下所示:
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');
}
有什么方法可以将助手的输出写入控制台吗?
我没试过,但也许:$this->line("sent to console');
你需要在 SomeCommand.php 中写 $this->info('send to console');
file.For 按照这个 https://laravel.com/docs/5.2/artisan#writing-output
我终于弄明白了(在 Laravel 5.6 中有效)
在 SomeCommand class 的 handle()
函数中,添加 $this->myHelper->setConsoleOutput($this->getOutput());
.
在您的助手 class 中,添加:
/**
*
* @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;
}
然后,在您的助手 class 的其他任何地方,您可以使用:
$this->writeToOuput('Here is a string that I want to show in the console.');