Как применить исправление для исправления ошибок в проекте Symfony?

У меня есть приложение, использующее symfony3, и некоторые клиенты используют его. Я планирую исправить ошибку, загрузив код патча онлайн.

Но вы знаете, что когда код исправления перезаписывает код проекта, вы должны выполнить следующую команду, чтобы код исправления вступил в силу.

php
php bin/console cache:clear --env=prod
chmod -R 777 var/tmp

К сожалению, эта команда может быть выполнена только в режиме cli;

Как я могу реализовать эту функцию?

Наконец, пожалуйста, прости меня за мой плохой английский. : Simle:

1

Решение

Ты можешь использовать 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();

На самом деле у вас есть несколько решений:

  • Реализуйте этот код в контроллере, доступном только вам.
  • Если вы используете развертыватель, как Capistrano, анзибль или любую другую технологию, просто добавьте команду cli, которую вы хотите выполнить, и запустите выполнение после развертывания исправления.

Вы также можете создать Symfony Command обернуть вас командами

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]