Laravel 5 包,可以在命令类之外向控制台输出

1.0.2 2022-12-14 18:38 UTC

This package is auto-updated.

Last update: 2024-09-14 22:23:13 UTC


README

此包允许您在命令类之外向控制台输出。

例如,您可能有一个功能,可以从命令和通过网页执行相同的事情。直到现在,您可能发现自己只是为了在各个地方向控制台输出而重复代码。

使用 Partyline,您可以在您的逻辑中使用输出命令。如果它正在控制台中运行,您将看到它。否则,不会发生任何事情。

使用方法

在您的控制台命令的 handle 方法中,使用外观将命令绑定到 Partyline

public function handle()
{
    \Partyline::bind($this);
}

然后在您的常规类中,您可以在 Partyline 外观上调用任何公共 Illuminate\Console\Command 方法,就像在命令类内部一样。

\Partyline::info('foo');
// Equivalent to $this->info('foo') within your command.

外观使用

您可以使用带有斜杠的全局别名外观

\Partyline::method();

或者,您可以导入外观

use Wilderborn\Partyline\Facade as Partyline;

Partyline::method();

安装

此包可以通过 Composer 安装。

composer require wilderborn/partyline

Laravel 5.4 及以下版本,注册服务提供者和外观

// config/app.php
'providers' => [
    ...
    Wilderborn\Partyline\ServiceProvider::class,
    ...
],

'aliases' => [
    ...
    'Partyline' => Wilderborn\Partyline\Facade::class,
    ...
]

Laravel 5.5 及以上版本,此包将 自动发现

提示

如果您有许多命令类,您可能会发现每次都将它们绑定到 Partyline 都很麻烦。您可以考虑使用抽象命令类并在 run 方法中绑定。

class YourCommand extends AbstractCommand
{
    public function handle()
    {
        //
    }
}
class AbstractCommand extends Command
{
    /**
     * Run the console command.
     *
     * @param  \Symfony\Component\Console\Input\InputInterface  $input
     * @param  \Symfony\Component\Console\Output\OutputInterface  $output
     * @return int
     */
    public function run(InputInterface $input, OutputInterface $output)
    {
        \Partyline::bind($this);

        return parent::run($input, $output);
    }
}

更多详情请参阅我们的 Statamic 博客:https://statamic.com/blog/partyline