У меня есть приложение, использующее symfony3, и некоторые клиенты используют его. Я планирую исправить ошибку, загрузив код патча онлайн.
Но вы знаете, что когда код исправления перезаписывает код проекта, вы должны выполнить следующую команду, чтобы код исправления вступил в силу.
php
php bin/console cache:clear --env=prod
chmod -R 777 var/tmp
К сожалению, эта команда может быть выполнена только в режиме cli;
Как я могу реализовать эту функцию?
Наконец, пожалуйста, прости меня за мой плохой английский. : Simle:
Ты можешь использовать Symfony Process Component для достижения этой цели:
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
$process = new Process('php bin/console cache:clear --env=prod && chmod -R 777 var/tmp');
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
На самом деле у вас есть несколько решений:
Вы также можете создать Symfony Command обернуть вас командами
Других решений пока нет …