#php #bash #symfony #service #command
Вопрос:
Когда я разрабатываю с Symfony, я использую MailDev для управления электронной почтой.
Но когда я запускаю его, я должен ввести эту команду, чтобы избежать проблем из-за SSL:
maildev --hide-extensions STARTTLS
Поэтому у меня возникла идея создать команду Symfony, которая автоматически выполняла бы эту команду с аргументами.
Для этого я решил использовать компонент процесса Symfony https://symfony.com/doc/current/components/process.html
Я создал это :
$process = Process::fromShellCommandline($command); //$command => the command to launch
$process->run();
if(!$process->isSuccessful())
{
throw new ProcessFailedException($process);
}
$output->writeln($process->getOutput());
Таким образом, это работает для команд с одним выстрелом, таких как «ls-l», которые отправляют вам результат. Но, как я и ожидал, для запуска сервисов, таких как maildev, messenger, есть ошибка, потому что он вообще ничего не отображает. Цель состоит в том, чтобы просто запустить команду и баста, а затем служба (maildev, messenger) берет на себя отображение того, что она должна отображать непрерывно.
Я немного застрял, так что у тебя есть идея?