Вывод команды Stream Artisan в браузер с помощью LivewirePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Вывод команды Stream Artisan в браузер с помощью Livewire

Сообщение Anonymous »

У меня есть страница, где пользователям разрешено выполнять команды ремесленников с помощью пользовательского интерфейса. Моя проблема заключается в получении вывода давних команд для потока в браузер, а не просто показывать его после завершения команды. < /P>
Вот моя текущая реализация (код упрощен для краткости) /p>
public string $output = '';

public function runCommand(): void
{
$outputBuffer = new BufferedConsoleOutput();

Artisan::call('list', outputBuffer: $outputBuffer);

$this->output = $outputBuffer->fetch();
}

Проблема с этим заключается в том, что вывод отображается только тогда, когда команда выполнена, а страница/пользователь Что я пытался сделать с помощью функциональности потока LiveWire < /p>

use Symfony\Component\Console\Output\StreamOutput;

public function streamTest()
{
$stream = fopen('php://output', 'w');

$outputBuffer = new StreamOutput($stream);

Artisan::call('list', outputBuffer: $outputBuffer);

$this->stream(
to: 'output',
content: $this->output,
replace: true,
);

while ($content = stream_get_contents($outputBuffer->getStream())) {
$this->output .= $content;
}
}
< /code>
выше не работает, и я не знаю, почему. У меня очень ограниченный опыт использования потоков, поэтому, вероятно, есть некоторые явные ошибки в этом примере, но я не мог найти ничего подобного онлайн. < /p>

Stream

Output: {{ $output }}



Подробнее здесь: https://stackoverflow.com/questions/794 ... g-livewire
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»