Laravel - OutputStyle из заданий - PullRequest
       0

Laravel - OutputStyle из заданий

0 голосов
/ 23 марта 2020

У меня возникают проблемы с разрешением задания Laravel взаимодействовать с выходом консоли.

В данный момент я передаю OutputStyle из Command в конструктор Job и назначаю его.

Я видел признак InteractsWithIO, но если я использую его сам, не назначая OutputStyle из команды, то он говорит, что он нулевой.

Call to a member function title() on null

У меня также есть попытался установить $this->output из контейнера, используя

$this->output = resolve(OutputStyle::class);

Это не удалось с

Target [Symfony\Component\Console\Input\InputInterface] is not instantiable while building [Illuminate\Console\OutputStyle].

Я также столкнулся с проблемами с тестами PHPUnit, которые проходят через эту работу. Выходные данные класса отображаются в выходных данных теста.

.......................Processing element 1 for "Section"
.......

Каков наилучший способ обработки вывода на консоль в Laravel, которая также работает с PHPUnit?

1 Ответ

0 голосов
/ 27 марта 2020

Включение следующего кода в поставщика услуг работает:

$this->app->bind('console.output', function () {
    return new OutputStyle(
        new StringInput(''),
        new StreamOutput(fopen('php://stdout', 'w'))
    );
});

Затем я могу сказать, в моей работе,

$this->output = resolve('console.output');

Что дает доступ ко всем методам, таким как title, section и table.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...